【发布时间】:2015-10-30 00:07:43
【问题描述】:
我有以下具有ManyToMany 和through 关系的模型:
class Meeting(models.Model):
site = models.ForeignKey(Site)
meeting_title = models.CharField(default='', max_length=128, blank=True, null=True)
meeting_visitors = models.ManyToManyField(Visitor, through="MeetingArrival", blank=False, null=False)
class Visitor(models.Model):
visitor_company = models.ForeignKey(Company)
visitor_name = models.CharField(default='', max_length=128, blank=False, null=False)
class MeetingArrival(models.Model):
visitor = models.ForeignKey(Visitor)
meeting = models.ForeignKey(Meeting)
arrival_status = models.BooleanField(default=False)
我有一个创建会议的表格:
class AddMeetingForm(forms.ModelForm):
class Meta:
model = Meeting
exclude = ['site',]
以及保存表单的简单视图:
def add_meeting(request):
add_meeting_form = AddMeetingForm(request.POST or None)
site = Site.objects.get(user=request.user.id)
if request.method == "POST":
if add_meeting_form.is_valid():
obj = add_meeting_form.save(commit=False)
obj.site = site
obj.save()
这会保存表单,但不会保存 meeting_visitors 字段,即使此字段在视图中完美呈现。我该如何挽救这段关系?
编辑
如果我将add_meeting_form.save_m2m() 添加到视图中,我会得到Cannot set values on a ManyToManyField which specifies an intermediary model. Use meetings.MeetingArrival's Manager instead.。我该怎么做?
【问题讨论】:
标签: django django-models django-forms django-views many-to-many