Django listview从url捕获值,然后传递到模板
我使用Django listview从url捕获值,然后传递到模板,django,Django,我使用 def get_queryset(self): name= self.request.GET.get('name') 现在要将此变量传递给模板。就像: 您已经搜索:{{name}在基于类的视图中,get\u queryset用于构造对象的查询集,如名称所示,例如在ListView中,将此查询集传递给模板,以便可以呈现查询集中的项目 在这里,您希望向上下文词典添加一些内容,在这种情况下,您需要修补函数,因此: def get_context_data(self, *args, *
def get_queryset(self):
name= self.request.GET.get('name')
现在要将此变量传递给模板。就像:
您已经搜索:{{name}在基于类的视图中,
get\u queryset
用于构造对象的查询集,如名称所示,例如在ListView
中,将此查询集传递给模板,以便可以呈现查询集中的项目
在这里,您希望向上下文词典添加一些内容,在这种情况下,您需要修补函数,因此:
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['name'] = self.request.GET.get('name')
return context
def get_context_数据(self、*args、**kwargs):
context=super()。获取上下文数据(*args,**kwargs)
上下文['name']=self.request.GET.GET('name'))
返回上下文
请注意,您应该返回一个字典,因此这里我们修改了从超级调用获得的字典。调用super().get\u context\u data(..)
方法不是必需的,例如,您可以返回仅包含所需属性的字典。但这通常不是一个好的设计,因为视图通常已经向上下文字典添加了大量数据,现在您不能再在模板中使用这些数据了。使用这个
def get_context_data(self, **kwargs):
name = self.request.GET.get('name')
context = super().get_context_data(**kwargs)
context["name"] = name
return context
现在,name变量在模板中可用
在模板中,您可以使用{{name}我不明白您为什么在
get\u queryset
中这样做。那是为了,嗯,得到一个查询集。您应该在get\u context\u data
中执行此操作,并将其添加到那里的context dict中。这不是在get\u queryset
函数中应该实现的。