Django:在一个表单中保存很多

2024-04-29 13:58:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的模型:

嘉宾:

class Guest(models.Model):
    name = models.CharField(max_length=255)
    phone = models.CharField(max_length=255)
    # ...

和会议:

^{pr2}$

很多客人都可以参加会议。一个客人可以参加很多会议。我们要存储一些关于。因此,通过某种模型,它是多对多的。在

class GuestOnMeeting(models.Model):
    guest = models.ForeignKey(Guest)
    meeting = models.ForeignKey(Meeting)

    # ... some other fields

问题是:

  1. 如何定义一个表单来编辑会议的来宾列表(邀请来宾-稍后我们将使用它发送sms邀请-无垃圾邮件,来宾几乎是我们的朋友;))。

  2. 每个客人都有一个经理(经理=模型.ForeignKey(经理)。如何修改此表单(或这些模型)以允许经理只邀请与他们相关联的来宾(使用外键)?


Tags: name模型表单modelmodels会议lengthmax
1条回答
网友
1楼 · 发布于 2024-04-29 13:58:21

如果您想要类似于管理内联的东西,您正在寻找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)

您可以添加fields或将自定义forms和/或querysets传递到modelformset工厂。在

相关问题 更多 >