【发布时间】:2018-07-13 17:39:24
【问题描述】:
目前,我有一个如下所示的表单:
class SelectBoard(generic.FormView):
form_class = forms.SelectBoard
def form_valid(self, form):
board_name = form.cleaned_data['name']
return redirect('leaderboard', board_name=board_name)
但是,我更喜欢做更惯用的事情,并使用get_success_url。像这样的:
class SelectBoard(generic.FormView):
form_class = forms.SelectBoard
def get_success_url(self):
form = ???
board_name = form.cleaned_data['name']
return reverse('leaderboard', board_name=board_name)
但是,该表单不会传递给get_success_url,并且与许多其他请求上下文(如self.request、self.kwargs 或self.object(在DetailView)中)不同,该表单不是附加的作为标准FormView 调度序列中任意点的属性。有什么好的方法可以访问get_success_url 中已清理和验证的表单数据(即无需访问self.request.POST 或从头开始重建表单)?
【问题讨论】:
标签: python django django-forms django-views django-class-based-views