[英]Django CBV - How to test get_context_data with uuid in url?
[英]Django CBV : get() and get_context_data()
我想获取有关get()
和get_context_data()
类的一些指标,因为我遇到了问题,并且试图理解原因。
我有一个Django DetailView
,可以显示带有多个查询集的一些统计信息。 在同一个类中,我有一个query string
,其中显示了来自get queryset的结果。
我的代码如下所示:
class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request):
return render(request, self.template_name, context)
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs):
return context_data
这样, get_context_data()
函数不起作用,但是当我在注释中设置get()
时,它可以正常工作。 我认为自己有一个小误会。
也许我没有使用好的django通用显示视图,或者不可能在同一类中一起使用get()
和get_context_data()
?
谢谢
我阅读了Django文档,但我想向您解释
编辑:
我试图将查询集从get()
方法传递给get_context_data()
。 然后我删除了get()
方法,通过TemplateView
更改了DetailView
,它仅与get_context_data()
。 但是,如何在没有get()
方法的情况下添加“骨架”呢?
我正在尝试将查询集从get()方法传递给get_context_data()
class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request, *args, **kwargs):
queryset = SampleModel.objects.all()
return render(request, self.template_name, context=self.get_context_data(queryset=queryset))
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs): qs = kwargs.get('queryset') # do something
如果您重写的get_context_data()
方法,建议将super()
方法调用为
class StatsView(DetailView):
# your code
def get_context_data(self, **kwargs): data = super(StatsView, self).get_context_data(**kwargs) data.update({"foo": "bar"}) return data
我想获得一些有关
get()
和get_context_data()
我认为这已经很好回答了, 何时在Django中使用get,get_queryset,get_context_data?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.