我正在尝试将以下基于函数的视图转换为基于类的视图:
(基本上在表单提交有效或无效之后,用户会再次被重定向到同一页面)。
旧代码:
def handle_form(request, template_name='contact.html'):
if request.method == "POST":
form = ContactForm(request.POST)
if form.is_valid():
do_something()
else:
form = ContactForm()
return render_to_response(template_name, {'form': form}, context_instance=RequestContext(request))
新代码:
class ContactFormView(FormView):
template_name = 'contact.html'
form_class = ContactForm
success_url = reverse_lazy('contact')
def form_valid(self, form):
do_something()
return super(ContactFormView, self).form_valid(form)
新代码的细微差别在于,如果表单有效,表单的提交值将被遗忘。旧代码中的行为是始终记住这些值。
任何帮助,将不胜感激。
干杯