如何在Django Admin的fieldset中手动获取指定字段值
解决Django Admin模板中直接获取Fieldset第一个字段的问题
Django模板语法不支持Python式的方括号索引(比如[0]),这就是你用fieldset[0].field报错的原因。要访问列表或可迭代对象的元素,模板里需要用.加数字索引的方式。
Django admin的Fieldset对象包含一个fields属性,这是存储所有字段(AdminField实例)的列表,你可以通过以下方式直接获取第一个字段:
获取第一个字段的当前值:
{{ fieldset.fields.0.field.value }}这里
fieldset.fields.0拿到第一个AdminField对象,.field指向对应的表单字段实例,.value就是字段的当前值。获取字段的标签文本:
{{ fieldset.fields.0.field.label }}若要直接渲染这个字段(和循环展示的效果一致),可以复用admin自带的字段模板:
{% include "admin/includes/field.html" with field=fieldset.fields.0 %}
记住,Django模板里访问列表元素的语法是列表.索引,比如第一个元素用.0,第二个用.1,以此类推,不能用[索引]的写法。
内容的提问来源于stack exchange,提问作者Iqra Moazzama
相关产品推荐
相关产品推荐

