2

我想在我的个人资料模板中打印所有用户值。手动打印它可以工作:`

<table class="table table-striped table-bordered"> 
    <tr><th>{{ user.username }}</th></tr>
    <tr><th>{{ user.first_name }}</th></tr>
    <tr><th>{{ user.last_name }}</th></tr>
    <tr><th>{{ user.email }}</th></tr>
</table>`

但这种方法不起作用:`

<table class="table table-striped table-bordered">
    {% for field in user.fields %}
        <tr>
            <td>{{ field.name }}</td>
            <td>{{ field.value }}</td>
        </tr>
    {% endfor %}
</table>

我试图使用这种方法迭代模板中的模型实例字段名称和值

有什么提示吗?

4

2 回答 2

2

模型实例上没有可用的称为字段的属性。

如果你真的想要这样的东西:

视图.py:

d = {}

for each in u._meta.fields:
    d[each.name] = getattr(u, each.name)

模板:

{% for k,v in d.items %}
    {{k}}
    {{v}}
{% endfor %}
于 2013-04-23T16:42:51.000 回答
0

您必须确保通过您的 views.py 文件(而不是 user.username 或 user.first_name 等)发送“用户”对象本身。这样您就可以在模板中编写:

<table class="table table-striped table-bordered">
        {% for field in user %}
            <tr>
                <td>{{ field.name }}</td>
                <td>{{ field.value }}</td>
            </tr>
        {% empty %}
            <tr>
                <td>No "user" field</td>
            </tr>
        {% endfor %} 
</table>

注意第二行的变化(“for field in user”)。

于 2013-04-23T15:22:47.970 回答