我有一个基于Django类的表单提交视图,名为myView,如下所示。 此视图将作为URL的一部分提交的参数以及用户填写到表单字段中的数据。当表单提交有效时,一切都很完美。
但是,如果表单字段验证失败,那么我希望这些错误显示在页面上,用户必须重新提交。增加的皱纹是,当发生这种情况时,需要将两个额外的参数(myArg1和myArg2)作为上下文字典的一部分发送。
目前,form_invalid返回super(myView, self).form_invalid(form)
。如何将myArg1和myArg2添加到此返回语句中,以使它们处于新重新提交的上下文中?
class myView(FormView, TemplateView):
template_name = 'myTemplate.html'
form_class = myForm
success_url = reverse_lazy("mySuccess")
def form_valid(self, form):
BlahBlahBlah
def form_invalid(self, form):
myArg1 = "A"
myArg2 = "B"
return super(myView, self).form_invalid(form)
# I need to send back myArg1 and myArg2 as members of the
# context dictionary in the line above. How?
答案 0 :(得分:2)
我改变了你的代码以遵循python指南(关于命名类等),你需要的是form_invalid方法。
请不要同时使用FormView
和TemplateView
,没有必要...... FormView
就足够了:
class MyView(FormView):
template_name = 'my_template.html'
form_class = MyForm
success_url = reverse_lazy("my-success")
def form_invalid(self, form):
return self.render_to_response(self.get_context_data(form=form,myArg1='A',myArg2='B'))