gpt4 book ai didi

django - 如何在基于类的通用 View 中读取添加到 RequestContext 的变量?

转载 作者:行者123 更新时间:2023-12-04 16:55:56 24 4
gpt4 key购买 nike

定期查看,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))

... 而不是设置 context_instance我可以调用基于函数的通用 View direct_to_template 1

如何读取添加到 RequestContext 中的变量 class-based generic views 2?

例如:
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)

1 将替换为 class-based TemplateView 反正。
2 它们在 Django 1.3 中是新的,我想使用它们只是因为。

最佳答案

你需要使用回调——get_queryset()在这种情况下 - 而不是类属性。当您静态控制选项时,类属性实际上只是快捷方式,并且它们仅限于一些非常简单的事情。当你需要做一些更复杂的事情时,你会想要切换到回调。

在您的情况下,如下所示的代码应该可以工作:

class ArticleListView(ListView):
template_name = 'stuff_list'

def get_queryset(self):
return get_list_or_404(Stuff, foo=self.request.DEBUG)

更多详情, see the documentation .

关于django - 如何在基于类的通用 View 中读取添加到 RequestContext 的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com