使用表单向导的Django内联表单集¶

时间:2015-01-24 13:16:47

标签: python django inline-formset django-formwizard

我有两个模型,第二个模型有一个ForeignKey到第一个模型。

我正在使用Django形式的wizzard以分开的步骤编译许多重新分组的字段。问题是当我到达“TeamMember”步骤时,我应该让用户输入许多成员。

我正在考虑使用Django Inline formset,但我无法在我的formwizard中实现它,我得到了

  

[u'ManagementForm数据丢失或已被篡改']

我尝试显示此步骤时出现

错误。

这是我的实现,如果有人有任何想法,我会非常感激:)。

如果您需要更多信息,请随时与我联系。

提前感谢您的帮助。

models.py

class Team(models.Model):
    name = name = models.CharField(_(u'Team'), max_length=50))

class TeamMember(models.Model):
    team = models.ForeignKey(Team)
    first_name = models.CharField(_('First name'), max_length=50, blank=True, null=True)
    first_name = models.CharField(_(u'Last name'), max_length=50, blank=True, null=True)

forms.py

class FundingRequestFormTeam(ModelForm):
    class Meta:
        model = TeamMember
        exclude = ('team',)
        fields = ('first_name', 'last_name')

TeamMemberFormSet = inlineformset_factory(Team, TeamMember)

urls.py

team_wizard = TeamWizard.as_view(FORMS_DATA, url_name='team_data_step')

urlpatterns = patterns('lending.views',
    url(r'^file/(?P<step>.+)/(?P<project_id>[0-9\-]+)$', login_required(team_wizard), name='team_step_edit'),

views.py

FORMS_DATA = [("info", TeamFormInfo),
         ("team_members", TeamFormSet),
         ("social", FundingRequestFormSocial),
         ("documents", FundingRequestFormDocuments), ]

视图的其余部分很简单,就像django表单向导

的文档一样

team_step_teammembers.html

<form method="post" enctype="multipart/form-data">
  {% csrf_token %}
  {{ wizard.management_form }}
  {% if wizard.form.forms %}
      {{ wizard.form.management_form }}
      {% for form in wizard.form.forms %}
          {% bootstrap_form form %}
      {% endfor %}
  {% else %}
      {% bootstrap_form wizard.form  %}
  {% endif %}
</form>

Django版本1.7.3

Python版本2.7.5

0 个答案:

没有答案