在Django中,如何在基于类的视图(如UpdateView)中访问request.meta和http_referer?

在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,根据调用更新的引用程序使用不同的重定向


更新:起初,我的问题有误导性。我不仅想访问元数据,还想访问导致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')