遍历用户在Django模板
问题描述:
我想打印我的个人资料模板中的所有用户值。 打印手动将其工作原理: `遍历用户在Django模板
<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>
我tryintg使用这种方法Iterate over model instance field names and values in template
任何提示?
答
有对模型实例没有可用的属性称为字段。
如果你真的想这样的事情:
views.py:
d = {}
for each in u._meta.fields:
d[each.name] = getattr(u, each.name)
模板:
{% for k,v in d.items %}
{{k}}
{{v}}
{% endfor %}
答
你必须确保你在“用户”对象本身通过您的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>
请注意,在第二行的变化(“在用户现场”)。
[...为空(HTTPS://docs.djangoproject .com/en/dev/ref/templates/builtins /#for-empty)看起来更好,我猜。 – soon 2013-04-23 15:26:56
谢谢,你是对的。将在我的代码中进行编辑。 – jball037 2013-04-23 15:33:22