Django-内联表单集和多对多关系

Django-内联表单集和多对多关系,django,forms,many-to-many,inline-formset,Django,Forms,Many To Many,Inline Formset,所以我有两个模型:团队和成员。我有一个名为MemberTeam的数据透视表 以下是我的MemberTeam模型: member = models.ForeignKey(Member) team = models.ForeignKey('acpkinballmanageteams.Team',verbose_name=_("team")) role = models.CharField(max_length=15,choices=ROLE_CHOICES,verbose_n

所以我有两个模型:团队和成员。我有一个名为MemberTeam的数据透视表

以下是我的MemberTeam模型:

    member = models.ForeignKey(Member)
    team = models.ForeignKey('acpkinballmanageteams.Team',verbose_name=_("team"))
    role = models.CharField(max_length=15,choices=ROLE_CHOICES,verbose_name=_("role"),blank=False,default='player')
所以当管理员创建一个团队时,我希望他们直接添加玩家。所以我创建了一个inlineformset。这是我的会员表格:

class MemberTeamForm(forms.ModelForm):

    member = AutoCompleteSelectField(lookup_class=MemberLookup2,required=True)

    class Meta:
        model = MemberTeam
没什么好幻想的。下面是我如何创建表单集的:

TeamRosterFormset = inlineformset_factory(Team, MemberTeam, fields=('member','role'), \
form=MemberTeamForm,can_delete=True, extra=1, max_num=18)
如果我创建了一个团队并且没有添加任何成员,那么一切都可以正常工作。如果我在团队编辑页面中添加/编辑/删除成员,也可以正常工作。问题是,当我尝试添加一个有成员的团队时,会出现以下错误: “”需要为字段“team”设置一个值才能使用此多对多关系

以下是正在使用的视图(它是基于创建表单的视图):

我不知道发生了什么,我应该怎么做。。。有什么想法吗

谢谢,
阿拉

好吧,让我哑口无言。。。只需从.save()方法中删除commit=false--

def form_valid(self, form):
    context = self.get_context_data()
    self.object = form.save(commit=False)
    teamroster_formset = cp_forms.TeamRosterFormset(self.request.POST, instance=self.object)

    if teamroster_formset.is_valid():
        teamroster_formset.instance = self.object
        teamroster_formset.save()