Django admin根据表单字段值在更改表单中添加自定义按钮

时间:2013-02-15 11:02:41

标签: django django-templates django-admin

我有一个应用程序覆盖了Djang改变形式。我想要改变的是底部的提交按钮。在django app下面是change_form.html

{% extends "admin/change_form.html" %}
{% block submit_buttons_bottom %} 
    ## add some buttons
{% endblock %}

我想要显示/添加的按钮取决于表单名称“status”中某个字段的值。如何获取模板中字段的值... 类似

{% if form.field.status == 'unresolved' %}
    <input type="submit" value="Mark as resolved" class="default" name="_save" />
{% endif %}

更新

我没有收到任何错误。没有显示任何内容。

通过var'adminform'循环将我带到我需要的字段

{% for fieldset in adminform %}
    {% for line in fieldset %}
        {% for field in line %}
            {% if field.field.name == 'status' %}
                this is status {{ field.field.name }} - {{ field.contents }}
            {% endif %}
        {% endfor %}
    {% endfor %}
{% endfor %}

但我想直接访问它。 类似:

{% if adminform.0.0.field.status == 'unresolved' %}
    <input type="submit" value="Mark as resolved" class="default" name="_save" />
{% endif %}

2 个答案:

答案 0 :(得分:0)

尝试将if语句更改为 -

{% if adminform.status.value == 'unresolved' %}

我猜,但我认为adminform变量可能只是一种形式。查看this section of the docs以查看表单字段的属性。

答案 1 :(得分:0)

这应该有效:

{% if adminform.form.status.value == 'unresolved' %}

或者如果该字段是只读的,还有另一种方式:

{% if adminform.form.instance.status == 'unresolved' %}