迭代模板中的模型实例字段名称和值

我试图创建一个基本模板来显示所选实例的字段值及其名称。将其视为该实例值的表格式标准输出,第一列中有字段名(如果在字段中指定了详细名称),第二列中有该字段的值

例如,假设我们有以下模型定义:

类客户端(模型):
name=CharField(最大长度=150)
email=EmailField(最大长度=100,详细名称=“电子邮件”)

我希望它像这样输出到模板中(假设一个具有给定值的实例):

字段名字段值
----------      -----------
我叫韦恩·库茨
电子邮件[email protected]

我试图实现的是能够将模型的一个实例传递给模板,并能够在模板中动态地迭代它,如下所示:

<表>
{字段%中的字段为%1}
<tr>
<td>{{field.name}}&lt/td>
<td>{field.value}}&lt/td>
&lt/tr>
{%endfor%}
&lt/表>

有没有一个整洁的“Django批准”的方法来做到这一点?这似乎是一项非常常见的任务,我需要经常为这个特定的项目做这项工作

model.\u-meta.get\u-all\u-field\u-names()将提供模型的所有字段名,然后您可以使用model.\u-meta.get\u-field()来获取详细名称,并使用getattr(model\u实例,'field\u-name')从模型中获取值

注意:model.\u meta.get\u all\u field\u names()在django 1.9中不推荐使用。而是使用model.\u meta.get\u fields()获取模型的字段,使用field.name获取每个字段的名称

发表评论