我想显示2个表中的数据(将来还会显示更多),但是我的代码中没有任何内容。
我的 views.py:
**imports**
def home(request):
context = {'users': Person.object.all(),
'emails': Email.object.all()
}
return render(request,'app/home.html',context)
class PersonListView(ListView):
model = Person
template_name = 'app/home.html'
context_object_name = 'users'
和我的 home.html
{% extends "app/base.html" %}
{% block content %}
{% for user in users %}
Displaying user attributes works fine
{% endfor %}
Here should be emails
{% for email in emails %}
This displaying doesnt work
{% endfor %}
{% endbock content %}
因此,显示用户没有任何问题,但是无法显示电子邮件中的任何内容,但是如果我在shell中进行操作,一切都会很好
答案 0 :(得分:1)
ListView
[Django-doc]旨在一次仅显示一个查询集。如果您需要传递额外的查询集,则可以覆盖get_context_data(..)
method [Django-doc]:
class PersonListView(ListView):
model = Person
template_name = 'app/home.html'
context_object_name = 'users'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update(emails=Email.objects.all())
return context
因此,我们在此处将一个额外的变量emails
传递给模板呈现引擎。但是请注意,此查询集不会被分页(或至少不会自己添加一些分页)。
我的
models.py
:
请注意,这些是视图,您需要在views.py
中编写这些视图。