【发布时间】:2015-11-28 20:06:17
【问题描述】:
这就是我在使用这个 Django 模型时遇到的问题。
我在名为 group 的类受让人中有一个 SecretSantaGroup 类的外键。 我想在创建者和受让人中引用这个 fk。
我想要的数据几乎是这样的: 创建者 = self.group.members 受让人 = self.group.members
但我在处理这件事时遇到了问题,需要一些帮助。
我希望能够引用该特定组中的所有用户,只是遇到了麻烦。
class SecretSantaGroups(models.Model):
groupName = models.TextField()
members = models.ManyToManyField(User)
def __str__(self):
return self.groupName
class Meta:
verbose_name_plural = 'Secret Santa Groups'
class assignees(models.Model):
group = models.ForeignKey(SecretSantaGroups)
#person that gives gifts
creator = models.ForeignKey(self.group.members, null=True)
#person who receives gift
assignee = models.ForeignKey(self.group.members, null=True)
编辑 ---我用了很糟糕的措辞,assignees 类应该是组中的谁得到谁。每个秘密圣诞老人组中 1 人得到另一个。所以送礼者和送礼者
class assignees(models.Model):
group = models.ForeignKey(SecretSantaGroups)
#person that gives gifts
giver = models.???(self.group.members, null=True)
#person who receives gift
giftee = models.???(self.group.members, null=True)
【问题讨论】:
-
您的“受让人”模型毫无意义。您期望创建者和受让人的外键解析为什么?另外,我建议为您的模型使用适当的命名约定;单数形式和 TitleCased。 Python 类名应始终以大写字母开头。
-
我并不太关注命名约定。我希望创建者和受让人访问组中的成员。我会在它们连接后修复约定。
-
这仍然没有任何意义。是否要引用特定用户但仅来自
group.members中的用户? -
我想引用一个秘密圣诞老人组中的单个用户。
-
用户总数:w x y z。 Santa group foo 有用户 x y,我希望只能访问 foo 中的用户,而不是所有用户
标签: django model-view-controller database-design django-models