所以这就是我对这个Django模型的问题。
我有一个foriegn键,可以在类组中使用SecretSantaGroup类。 我想在创作者和受让人中引用这个fk。
我想要的数据几乎是这样的: creator = 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)
EDIT ---我使用了可怕的措辞,受让人的班级应该是谁在团队中获得谁。每个秘密圣诞老人组中有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)
答案 0 :(得分:0)
除非我弄错了,否则您似乎要做的就是为var id_posts = from p in db.Posts
join hp in db.Have_Privacy on p.id_post equals hp.id_post
where hp.id_privacidade = 1
select p.texto;
定义与所有可能的用户的关联,然后定义那些用户被分配了#34;或者你想称之为什么。
我也不知道你是想在Django admin中编辑这些内容,还是在不同视图中编辑它们,但我如何定义模型是这样的:
var id_posts = from p in db.Posts
join hp in db.Have_Privacy on p.id_post equals hp.id_post
join prv in db.Privacy on hp.id_privacidade equals prv.id_privacidade
where prv.nome = 'Private'
select p.texto;
如果您想限制"已分配"的选择在Django admin中,您需要分两步完成此操作。首先,您需要分配哪些成员,然后您需要分配"已分配的" SecretSantaGroup
中的对象,因此选项有限,然后您可以指定您想要的那些。
这可以通过自定义表单完成。我没有测试过这段代码:
class SecretSantaGroup(models.Model):
name = models.CharField(max_length=255)
creator = models.ForeignKey(User, related_name='creator')
members = models.ManyToMany(User, related_name='members')
assigned = models.ManyToMany(User, related_name='assigned', blank=True, null=True)
def __unicode__(self):
return self.name
然后,您可以在模型管理员上分配自定义管理表单。
如果您在公共场合这样做,您仍然需要相同类型的覆盖,并且您仍然必须分两步完成此操作,尽我所知。希望能帮到你。