该问题的答案为here,但由于它不适用于模板,因此已过时且不正确。
我正在使用标准的ListView
访问模板中的对象。我想在表中显示对象,表头中的字段名称和表主体中的字段值。
这样做很简单,但是我不确定如何访问对象字段名称。您无法使用{{ object._meta.get_field[field].verbose_name }}
,因为_meta
在模板中不可用。
例如:首先,我将要呈现的字段列表添加到上下文中:
def get_context_data(self, **kwargs):
context['fields'] = ['id', 'email', 'name']
然后我将它们循环到模板中
<table>
<thead>
{% for object in object_list %}
{% if loop.first %}
<tr>
{% for field in fields %}
// MISSING CODE //
{% endfor %}
</tr>
{% endif %}
{% endfor %}
</thead>
<tbody>
{% for object in object_list %}
<tr>
{% for field in fields %}
<td>{{ object[field] }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
这很好用,因为它只显示我想要的正文字段,但是以某种方式我需要访问对象上的字段详细名称。我想我可以在上下文中传递一个dict
而不是一个列表(使用field:verbose_name
键:值对),但这并不很干。
有什么想法吗?