我有一吨的领域,我需要布局(重新排序)在一个特定的方式的形式(与其他一些额外的html的东西)。我为我的模型创建了 change_form.html 文件,它本身就可以工作。
问题是所有的例子都在字段上循环,我只想通过名称引用每个字段。
# this works
{% for fieldset in adminform %}
{% for line in fieldset %}
{% for field in line %}
<p>{{ field.field }}</p>
{% endfor %}
{% endfor %}
{% endfor %}
- 我知道你可以自定义admin.ModelAdmin与字段集等。但这不是我想要的 *
我尝试了不同的方法,如下所示,但它不工作:
# assuming the admin model has the fields: first_name & last_name
{% block content %}
<!-- doesn't work !!! ->
{{ adminform.fieldsets.0.1.fields.first_name.field }}
{{ adminform.fieldsets.0.1.fields.last_name.field }}
<!-- neither does this -->
{{ adminform.fields.first_name.field }}
{{ adminform.fields.last_name.field }}
{% endblock %}
现在这不起作用,有没有什么有效的方法可以直接访问我需要的字段?
3条答案
按热度按时间kognpnkq1#
我看的方向完全错了。它实际上非常简单,你可以使用它如下。
当你有一个带有
last_name
字段的模型时,你可以访问这个字段:w8f9ii692#
你可以创建一个ModelForm在你的ModelAdmin中使用,查看文档-> https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
另一种方法是设置字段tuple,docs here -> https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fields
希望这能引导你走上正确的道路。
z9ju0rcb3#
你可以用
{{ original }}
调用object。如果你有场:last_name你可以在模板中这样调用它{{ original.last_name }}