如何在Django中创建依赖模型关系

时间:2011-01-10 07:08:44

标签: django database-design

我正在尝试为以下场景创建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关系,但它仍然不起作用。

我应该如何为这种情况创建模型?

提前致谢!

2 个答案:

答案 0 :(得分:1)

创建一个ClubLeader模型类,其中列为俱乐部的外键,成员为领导者。在该表中强制执行Club + Member ID的唯一性,以确保您没有多个领导者。从您的俱乐部课程中删除“领导者”。

另外,我不会加入任何像我这样的会员(Groucho Marx)的俱乐部

答案 1 :(得分:0)

有关详细信息,Blank = True并不表示数据库中的字段可以为null。它只表示使用ModelForm时表单字段可以为空(或者只是管理员 - 或者/或)。你想要的是blank=True, null=True。这允许使用null值,并在/ admin面板中使用空白值。

我仍然会选择Spacedman的答案。提供一个位于“中间”的单独表格。这样,您强制执行会员必须属于俱乐部。