我有两个模型,第二个模型有一个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