我有这样的模型:
嘉宾:
class Guest(models.Model):
name = models.CharField(max_length=255)
phone = models.CharField(max_length=255)
# ...
和 session :
class Meeting(models.Model):
# some fields ...
guests = models.ManyToManyField(through='GuestOnMeeting')
可以有很多客人参加 session 。一位客人可以参加许多 session 。我们将存储一些相关的附加信息。所以,它通过某种模型是多对多的。
class GuestOnMeeting(models.Model):
guest = models.ForeignKey(Guest)
meeting = models.ForeignKey(Meeting)
# ... some other fields
问题是:
如何定义一个表单来编辑 session 的 guest 列表(邀请 guest - 稍后我们将使用它来发送短信邀请 - 没有垃圾邮件, guest 几乎是我们的 friend ;)。
里>每个 guest 都有一个经理(manager = models.ForeignKey(Managers))。我如何修改此表单(或这些模型)以允许经理仅邀请链接到他们的客人(使用外键)?
最佳答案
如果您想要类似管理内联的内容,您正在寻找 inlineformset_factory .
>>> from django.forms.models import inlineformset_factory
>>> GuestOnMeetingInline = inlineformset_factory(GuestOnMeeting, Meeting)
>>> meeting = Meeting.objects.all()[0]
>>> form = MeetingForm(instance=meeting)
>>> formset = GuestOnMeetingInline(instance=meeting)
关于python - Django:以表单保存多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9736067/