最近两天我遇到了这个问题。代码的第一部分:
viewa.py
def A_dashboard(request):
user = User.objects.get(id=request.user.id)
users = User.objects.all()
return render_to_response('dashboard.html', {"user": user, "users": users} , context_instance=RequestContext(request))
根据用户的一个属性,仪表板将有所不同。 dashboard.html
{% extends "index.html" %}
{% load staticfiles %}
{% block content %}
{% if user.is_A %}
{% include "dashboards/A_dashboard.html" %}
{% endif %}
{% if user.is_B %}
{% include "dashboards/B_dashboard.html" %}
{% endif %}
{% endblock content %}
A用户的具体仪表板。
仪表板/ A_dashboard.html
{% load staticfiles %}
<div class="offrow rowpadding dashboard-info">
<div class="container">
<div class="row">
<div class="col-lg-7">
<div class="row">
{{user}}
{{users}}
{% for user_ in users %}
<p>{{user_}}</p>
{% endfor %}
</div>
</div>
<div class="col-lg-5">
<div class="row">
<div class="col-md-12">
{% include 'calendar.html' %}
</div>
</div>
</div>
</div>
</div>
刚才我以A用户身份登录。在视图中,我检查类以检查一切正常。它的类<class 'django.db.models.query.QuerySet'>
但是,当我尝试在模板中迭代列表时,它不存在。
你能想象发生什么事吗?
问候。
答案 0 :(得分:0)
奇怪的是,对象不存在。
User.objects.all()
是查询集,因此在模板users
中是一个查询集。
user
是一个用户对象,它有一些属性,例如username
,email
等。
for user_ in users
您获得的每个用户对象(user_
)与上面的user
类似
所以试试这个
<div class="row">
name: {{ user.username }}
{% for user_ in users %}
<p>name: {{ user_.username }}</p>
{% endfor %}
</div>
{{user.username}}
和{{ user.username }}
是相同的,空格只是为了看起来优雅