title: Custom Templates Django Formwizard
body: <p>This may be obvious to some, but I cannot figure out how to over-ride <code>get_template_name</code> to provide a different template to the different steps of my <code>form wizard</code>. Here is what I have so far: </p>
  
  <pre><code>class StepOneForm(forms.Form):
      color = forms.ChoiceField(choices=COLOR_CHOICES) 
      ...
  
  class StepTwoForm(forms.Form):
      main_image = forms.ImageField()
      ...
  
  class StepThreeForm(forms.Form):
      condition = forms.ChoiceField(choices=CONDITION)
      ...
  
  class CreateWizard(SessionWizardView):
      file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT))
      def done(self, form_list, **kwargs):
          id = form_list[0].cleaned_data['id']
          try:
              thing = Thing.objects.get(pk=id)
              instance = thing
          except:
              thing = None
              instance = None
          if thing and thing.user != self.request.user:
              raise HttpResponseForbidden()
          if not thing:
              instance = Thing()
              for form in form_list:
                  for field, value in form.cleaned_data.iteritems():
                      setattr(instance, field, value)
              instance.user = self.request.user
              instance.save()
          return render_to_response('wizard-done.html', {
                  'form_data': [form.cleaned_data for form in form_list],})
  </code></pre>
  
  <p>urls.py:</p>
  
  <pre><code>url(r'^create/$', login_required(CreateWizard.as_view([StepOneForm, StepTwoForm, StepThreeForm])), name='create_thing'),
  </code></pre>
  
  <p>I have read the Django docs and tried to use the method described there. In my forms.py:</p>
  
  <pre><code>FORMS = [("step_one", myapp.forms.StepOneForm),
           ("step_two", myapp.forms.StepTwoForm),
           ("step_three", myapp.forms.StepThreeForm)]
  
  TEMPLATES = {"step_one": "myapp/step-one.html",
               "step_two": "myapp/step-two.html",
               "step_three": "myapp/step-three.html"}
  
  class CreateWizard(SessionWizardView):
      def get_template_names(self):
          return [TEMPLATES[self.steps.current]]
          ...etc. ...
  </code></pre>
  
  <p>But this returns a <code>KeyError at u'0'</code>. How can I get my form wizard to display different templates for each step?</p>