サンプルのFormWizardを整理してみた
いろいろ書き込んでいたらforms.pyにメソッドが混在したりしていたので一度整理してみた。
urls.py(関連のもののみ記載)
from projname.appname.forms import ContactOne, ContactTwo from projname.appname.views import ContactWizard urlpatterns = patterns('', (r'^contact/$', ContactWizard([ContactOne, ContactTwo])), (r'^contact/thanks/$', 'django.views.generic.simple.direct_to_template', {'template': 'thanks.html'}), )
forms.py
from django import newforms as forms class ContactOne(forms.Form): name = forms.CharField() email = forms.EmailField() class ContactTwo(forms.Form): CHOICES = [(x, x) for x in ("I like your site", "I hate your site", "I don't care")] feeling = forms.ChoiceField(choices = CHOICES, widget = forms.widgets.RadioSelect) message = forms.CharField(widget = forms.widgets.Textarea)
views.py
from projname.appname.forms import ContactOne, ContactTwo from django.contrib.formtools.wizard import FormWizard from django.http import HttpResponseRedirect class ContactWizard(FormWizard): def get_template(self, step): return 'cat/wizard.html' def done(self, request, form_list): return HttpResponseRedirect('/contact/thanks/') def render_template(self, *args, **kwargs): return super(ContactWizard, self).render_template(*args, **kwargs)
これからもう少し修正が少ないように変更していきます。