次の関数ベースのビューをクラス ベースのビューに変換しようとしています。
(基本的に、フォームが有効または無効に送信された後、ユーザーは同じページに再度リダイレクトされます)。
古いコード:
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)
新しいコードの微妙な違いは、フォームが有効な場合、フォームの送信された値が忘れられることです。古いコードの動作は、値が常に記憶されるというものでした。
どんな助けでも大歓迎です。
乾杯