遍历模板中的模型实例字段名称和值
我正在尝试创建一个基本模板以显示所选实例的字段值及其名称。可以将其视为表格式的该实例的值的标准输出,在第一列中具有字段名称(如果在字段上指定,则为verbose_name),在第二列中具有该字段的值。
例如,假设我们具有以下模型定义:
class Client(Model): name = CharField(max_length=150)
email = EmailField(max_length=100, verbose_name="E-mail")
我希望将其像这样在模板中输出(假定具有给定值的实例):
Field Name Field Value---------- -----------
Name Wayne Koorts
E-mail waynes@email.com
我要实现的目标是能够将模型的实例传递给模板,并能够在模板中动态地对其进行迭代,如下所示:
<table> {% for field in fields %}
<tr>
<td>{{ field.name }}</td>
<td>{{ field.value }}</td>
</tr>
{% endfor %}
</table>
有没有一种经过Django批准的简洁方法?这似乎是一项非常普通的任务,对于这个特定项目,我将需要经常执行。
回答:
model._meta.get_all_field_names()
将为你提供模型的所有字段名称,然后你就可以使用model._meta.get_field()它getattr(model_instance, 'field_name')
来获取详细名称,并从模型中获取值。
注意:model._meta.get_all_field_names()
在django 1.9中已弃用。而是使用model._meta.get_fields()
获取模型的字段并field.name
获取每个字段名称。
以上是 遍历模板中的模型实例字段名称和值 的全部内容, 来源链接: utcz.com/qa/419796.html