Настройка поля формы Django в Admin на основе значения - PullRequest
1 голос
/ 25 января 2011

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

Я попытался копаться в исходном коде и отследил свой экземпляр поля до 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 Ответ

1 голос
/ 25 января 2011

Только что выполнил сеанс оболочки, набрав случайные величины (ipython ftw), и нашел это:

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...