Django:在模板中列出模型字段名称和值
问题内容:
这个问题已经在这里有了答案 :
9年前关闭。
可能重复:
Django-
遍历模板中的模型实例字段名称和值
你好
我正在尝试在模板中列出通用Django模型的字段和相应值。但是,对于一个相当常见的问题,我找不到内置的解决方案。我非常接近解决方案,但找不到出路。
view.py代码:
def showdetails(request, template):
objects = newivr1_model.objects.all()
fields = newivr1_model._meta.get_all_field_names()
return render_to_response(template, {'fields': fields,'objects':objects},
context_instance=RequestContext(request))
模板代码:
<table>
{% for object in objects %}
<tr>
{% for field in fields %}
<td>
<!-- {{ object.field }} /*This line doesn't work*/ -->
</td>
{% endfor %}
</tr>
{% endfor %}
</table>
我应该在注释模板行做什么,以便获得Object.field的值?
也欢迎任何更好的DRY方法。
问题答案:
不幸的是,您无法在模板引擎中进行类似的查找。
您将不得不在视图中处理该问题。
def showdetails(request, template):
objects = newivr1_model.objects.all()
for object in objects:
object.fields = dict((field.name, field.value_to_string(object))
for field in object._meta.fields)
return render_to_response(template, { 'objects':objects },
context_instance=RequestContext(request))
模板
{% for object in objects %}
<tr>
{% for field, value in object.fields.iteritems %}
<td>{{ field }} : {{ value }}</td>
{% endfor %}
</tr>
{% endfor %}