微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决迭代模板中的模型实例字段名称和值

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获取每个字段名称

解决方法

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

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

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 认可”的方式来做到这一点?这似乎是一项非常常见的任务,我需要经常为这个特定的项目做这件事。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。