基于价值

基于价值

问题描述:

自定义的Django窗体域管理员如何基于表单字段的值,自定义表单显示在Django的管理?例如,我有一个默认值为“0”的字段。如果该字段已设置为非零值,我想在表单上显示额外的“编辑”链接,该链接将链接到单独的页面,以允许编辑与相关模型相关的其他字段。我已经找到了如何定制admin的表单模板,但是我找不到如何访问表单字段的实际值,以便在模板中添加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 %} 

只是做随机变量的shell会话打字(IPython的FTW),并发现这一点:

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

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

给它一个镜头!