サンプルの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)

これからもう少し修正が少ないように変更していきます。