Ale*_*tov 5 django django-views django-class-based-views
使用常规视图,RequestContext可以访问变量,如request.VARNAME:
def example(request, template_name='stuff_list'):
return render_to_response(template_name,
{'stuff_list': get_list_or_404(Stuff, foo=request.DEBUG)},
context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
...而不是设置context_instance我可以调用基于函数的通用视图 direct_to_template1
如何在基于类的通用视图 2中读取添加到RequestContext的变量?
例如:
class ArticleListView(ListView):
template_name = 'stuff_list'
bar = request.DEBUG # This won't work. What should I use instead?
queryset = get_list_or_404(Stuff, foo=bar)
Run Code Online (Sandbox Code Playgroud)
TemplateView替换.您需要使用回调 - get_queryset()在这种情况下 - 而不是类属性.当你静态地控制选项时,类属性实际上只是快捷方式,并且它们仅限于一些非常简单的事情.当您需要执行更复杂的操作时,您将需要切换到回调.
在您的情况下,以下代码应该工作:
class ArticleListView(ListView):
template_name = 'stuff_list'
def get_queryset(self):
return get_list_or_404(Stuff, foo=self.request.DEBUG)
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅文档.
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |