我正在尝试为以下场景创建Django模型:
有几个俱乐部。每个俱乐部都有一名领导和几名成员。领导者也是会员。
到目前为止,这些是我的模型:
class Club(models.Model):
name = models.CharField(max_length=50)
leader = models.ForeignKey('Member', related_name='+')
class Member(models.Model):
name = models.CharField(max_length=50)
club = models.ForeignKey(Club)
在管理界面中,我不能在没有成为俱乐部的情况下添加会员,但如果没有创建会员来指定领导者,我就无法成立俱乐部。我尝试将Blank = True添加到领导者的ForeignKey关系,但它仍然不起作用。
我应该如何为这种情况创建模型?
提前致谢!
答案 0 :(得分:1)
创建一个ClubLeader模型类,其中列为俱乐部的外键,成员为领导者。在该表中强制执行Club + Member ID的唯一性,以确保您没有多个领导者。从您的俱乐部课程中删除“领导者”。
另外,我不会加入任何像我这样的会员(Groucho Marx)的俱乐部
答案 1 :(得分:0)
有关详细信息,Blank = True并不表示数据库中的字段可以为null。它只表示使用ModelForm时表单字段可以为空(或者只是管理员 - 或者/或)。你想要的是blank=True, null=True
。这允许使用null值,并在/ admin面板中使用空白值。
我仍然会选择Spacedman的答案。提供一个位于“中间”的单独表格。这样,您强制执行会员必须属于俱乐部。