Boo*_*ap4 2 python django django-views django-generic-views
Django通用视图get_context_data和之间有什么区别queryset?他们似乎做同样的事情?
get_context_data()
此方法用于填充字典以用作模板上下文.例如,ListViews将get_queryset()的结果填充为object_list.您可能最常重复使用此方法来添加要在模板中显示的内容.
def get_context_data(self, **kwargs):
data = super().get_context_data(**kwargs)
data['some_thing'] = 'some_other_thing'
return data
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中,您可以引用这些变量.
<h1>{{ some_thing }}</h1>
<ul>
{% for item in object_list %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
此方法仅用于为模板提供上下文.
get_queryset()
使用者ListViews- 它确定要显示的对象列表.默认情况下,它只会为您指定的模型提供所有内容.通过重写此方法,您可以扩展或完全替换此逻辑.关于这个主题的Django文档.
这些是完全不同的事情。
get_context_data()用于生成可在模板中访问的变量的字典。queryset是由模型实例组成的 Django ORM 查询集
get_context_data()in的默认实现将(默认情况下仅返回)ListView的返回值作为变量添加到上下文。get_queryset()self.querysetobjects_list
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |