在 Django CreateView form_valid 方法中访问请求变量
Access request variable in Django CreateView form_valid method
如何访问 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一样吗?
- 要访问
form_valid()
中的 request
变量,您只需使用 self.request
。这将为您提供 request
变量。
- 不,不需要覆盖
.post()
来访问 form_valid()
中的 request
变量。
- 是的,
self.request.POST
与 request.POST
相同,因为它们是相同的 request
对象。
因此,您的最终代码应如下所示:
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
如何访问 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一样吗?
- 要访问
form_valid()
中的request
变量,您只需使用self.request
。这将为您提供request
变量。 - 不,不需要覆盖
.post()
来访问form_valid()
中的request
变量。 - 是的,
self.request.POST
与request.POST
相同,因为它们是相同的request
对象。
因此,您的最终代码应如下所示:
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