2011-01-25 3 views
1

Как вы настраиваете отображение формы в администраторе Django на основе значения поля формы? Например, у меня есть поле, значение по умолчанию которого равно «0». Если для поля установлено ненулевое значение, я хочу показать дополнительную ссылку «Изменить» в форме, которая будет ссылаться на отдельную страницу, позволяющую редактировать другие поля, относящиеся к соответствующей модели. Я нашел, как настроить шаблон формы администратора, но я не могу найти, как получить доступ к фактическому значению поля формы, чтобы добавить оператор if/else в шаблон.Настройка поля формы Django в Admin на основе значения

Я пробовал копать исходный код, и я проследил мой экземпляр поля до django.contrib.admin.AdminField.field->django.forms.BoundField, но при отображении атрибута поля и данных BoundField не отображается значение, хранящееся в разметке виджета поля формы по умолчанию. Как получить доступ к значению данных определенного поля внутри шаблона, чтобы я мог сделать что-то вроде следующего?

{% for fieldset in inline_admin_form %} 
    {% for line in fieldset %} 
     {% for field in line %} 
      {{field.field}} {% if field.field.value != 0 %}<a href="/some/path/to/model/{{field.value}}">Edit</a>{% endif %} 
     {% endfor %} 
    {% endfor %} 
{% endfor %} 

ответ

1

Просто сделал оболочку сеанс набрав в случайных величинах (IPython FTW) и нашел это:

boundfield.data = data 
boundfield.field.initial = initial 

{% for field in form %} 
    {% if field.data != field.field.initial %}Not Initial{% endif %} 
{% endfor %} 

Дайте ему шанс!

Смежные вопросы