繁体   English   中英

Django:多对多循环参考

[英]Django: many to many circular reference

我的模型有问题,因为我在多对多关系中有一个循环引用

这是我的Web应用程序的一部分,会话属于一个组(一个组可以有多个会话),每个会话都有一个以上的助手,但是助手只能是该会话组的成员

这是我的模型:

class GroupMember(models.Model):
    member = models.ForeignKey(Volunteer, null=True, blank=True)
    group = models.ForeignKey(Group)
    leader = models.BooleanField(default=False)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{}'.format(self.member)

class Session(models.Model):
    name = models.CharField(max_length=250)
    group = models.ForeignKey(Group)
    assistants = models.ManyToManyField(GroupMember,through=SessionAssistant)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{}'.format(self.name)

class SessionAssistant(models.Model):
    assistant = models.ForeignKey(GroupMember)
    session = models.ForeignKey(Session, null=True, blank=True, on_delete=models.CASCADE)
    assist = models.BooleanField(default=True)
    ability = models.IntegerField(null=True,
                              blank=True,
                              validators=[MaxValueValidator(5), MinValueValidator(1)])
    performance = models.IntegerField(null=True,
                                  blank=True,
                                  validators=[MaxValueValidator(5), MinValueValidator(1)])
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{}'.format(self.assistant)

如果将assistants = models.ManyToManyField(GroupMember,through=SessionAssistant)更改为assistants = models.ManyToManyField(GroupMember,through='SessionAssistant')什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM