遍历模板中的模型实例字段名称和值

我正在尝试创建一个基本模板以显示所选实例的字段值及其名称。可以将其视为表格式的该实例的值的标准输出,在第一列中具有字段名称(如果在字段上指定,则为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

回到顶部