Django CreateView form_valid方法中的访问请求变量

时间:2015-08-27 07:08:55

标签: python django django-views django-class-based-views

如何在form_valid中访问请求?

def redirect_logic_func(request):
   #redirect logic

class CView(CreateView):
    form_class = CForm
    template_name = "c_form.html"

    def form_valid(self, form):
        form.save()
        super(CView, self).form_valid(form)
        return redirect_logic_func(self.request)

self.request.POST与request.POST相同吗?

1 个答案:

答案 0 :(得分:9)

  1. 要访问request中的form_valid()变量,您只需使用self.request即可。这将为您提供request变量。
  2. 不,无需覆盖.post()即可访问request中的form_valid()变量。
  3. 是的,self.request.POSTrequest.POST相同,因为它们是同一个request对象。
  4. 因此,您的最终代码应如下所示:

    def redirect_logic_func(request):
       #redirect logic
    
    class CView(CreateView):
        form_class = CForm
        template_name = "c_form.html"
    
        def form_valid(self, form):
            form.save()
            super(CView, self).form_valid(form)
            return redirect_logic_func(self.request) # use self.request