django表单向导,不会进入第二步

时间:2013-09-24 19:53:39

标签: django django-forms

我正在尝试使用Django执行以下操作:

  • 包含两个表格的向导
  • 第一个表单是一个包含一些Ajax的简单表单,可以自动计算某些字段
  • 第二种形式是用户注册

问题如下:

  • 第一个表单正确显示,页面中的Ajax工作正常
  • 按下“提交”按钮后,第二种表格永远不会显示

代码如下:

urls.py

from forms import InsertPropertyForm1, InsertPropertyForm2
from views import InsertPropertyWizard

urlpatterns = patterns('',
  url(r'^addProperty/$',  InsertPropertyWizard.as_view([InsertPropertyForm1, InsertPropertyForm2]), name='addProperty'),
)

views.py

FORMS = [("property", InsertPropertyForm1),
     ("test", InsertPropertyForm2)         
    ]
TEMPLATES = {'0': 'realEstate/addProperty.html',
         '1' : 'realEstate/test.html',             
         }

class InsertPropertyWizard(SessionWizardView):

  def get_template_names(self):        
    print ("next step !!!!! " + str(self.steps.current))
    return [TEMPLATES[self.steps.current]]

  def done(self, form_list, **kwargs):
    print "Wizard done"
    #do_something_with_the_form_data(form_list)
    return HttpResponseRedirect('http://TO_FILL_IN')

房地产/ addProperty.html

{% extends 'realEstate/base.html' %}
{% load socialaccount %}

{% load i18n %}

{% block head %}
{{ wizard.form.media }}
{% endblock %}


{% block content %}

<h1> Insert an ad </h1>

<p>Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p>

<form  class="form-horizontal" role="form"  action="" method="post">{% csrf_token %}

<table>

  {{ wizard.management_form }}

</table>

{{ form.non_field_errors }}
<fieldset>
  <legend>Localisation</legend>
  <div class="form-group">
    {{ form.country.errors }}
      <label class="col-lg-1" for="id_country">{{form.country.label}}</label>
      <div class="col-lg-1">
        {{ form.country }}
      </div>
  </div>
</fieldset>

</fieldset>
{% if wizard.steps.prev %}
  <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}
  </button>
  <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}
  </button>
{% endif %}

<input type="submit" value="{% trans "submit" %}"/>

</form>


{% endblock %}

1 个答案:

答案 0 :(得分:1)

以为它可以帮助别人。

问题是该字段之一未在表单中定义,我忘记将其包含在模板中。

向导的行为是正确的。它在第一页上有stuc,但由于没有显示字段,因此没有在屏幕上显示错误。

让我发疯但这是我的错。

干杯