在Django中,如何在基于类的视图(如UpdateView)中访问request.meta和http_referer?
实际上,问题就在标题中:) 我想有一个UpdateView,根据调用更新的引用程序使用不同的重定向在Django中,如何在基于类的视图(如UpdateView)中访问request.meta和http_referer?,django,Django,实际上,问题就在标题中:) 我想有一个UpdateView,根据调用更新的引用程序使用不同的重定向 更新:起初,我的问题有误导性。我不仅想访问元数据,还想访问导致updateview的网站的http_referer。这实际上取决于视图。如果您使用通用CBV,您应该调用self.request.meta更多信息。但是如果您只是扩展视图类,您可以像在 从django.http导入HttpResponse 从django.views导入视图 类MyView(视图): def get(自我,请求): #
更新:起初,我的问题有误导性。我不仅想访问元数据,还想访问导致updateview的网站的http_referer。这实际上取决于视图。如果您使用通用CBV,您应该调用
self.request.meta
更多信息。但是如果您只是扩展视图
类,您可以像在
从django.http导入HttpResponse
从django.views导入视图
类MyView(视图):
def get(自我,请求):
#
request.meta
返回HttpResponse('result')
我用
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['ref'] = self.request.META['HTTP_REFERER']
return context
def get_success_url(self):
if 'uebersichteingaben_nichtabgeschlossen' in self.request.POST['ref']:
return reverse_lazy(url_app_name + 'uebersichteingaben_nichtabgeschlossen')
else:
return reverse_lazy(url_app_name + 'uebersichteingaben_alle')
在CBV。我使用上下文['ref']作为模板中的隐藏输入。我想使用通用CBV。类RgUpdate(UpdateView):模型=。。。模板名称=。。。字段=。。。def get_success_url(self):[这里我想说的是像if self.request.meta['http_referer']==…:返回reverse…谢谢,但是当我访问self.request.meta['http_referer']时,我只得到更新视图的url,而不是指向更新视图的页面的url。好吧,你的问题“在Django中,我如何在基于类的视图(如UpdateView)中访问request.meta?”也得到了正确的回答“嗯,实际上问题在标题中:)”确认了这是您的问题。引用者部分是另一个问题。让其他人看看您问的问题是否有类似的答案。
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['ref'] = self.request.META['HTTP_REFERER']
return context
def get_success_url(self):
if 'uebersichteingaben_nichtabgeschlossen' in self.request.POST['ref']:
return reverse_lazy(url_app_name + 'uebersichteingaben_nichtabgeschlossen')
else:
return reverse_lazy(url_app_name + 'uebersichteingaben_alle')