Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:多对多循环引用_Python_Django_Python 2.7_Python 3.x_Django Models - Fatal编程技术网

Python Django:多对多循环引用

Python Django:多对多循环引用,python,django,python-2.7,python-3.x,django-models,Python,Django,Python 2.7,Python 3.x,Django Models,我的模型中有一个问题,因为我在多对多关系中有一个循环引用 这是我的web应用程序的一部分,会话属于一个组(一个组可以有多个会话),每个会话都有多个助手,但助手只能是会话组的成员 以下是我的模型: class GroupMember(models.Model): member = models.ForeignKey(Volunteer, null=True, blank=True) group = models.ForeignKey(Group) leader = mode

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

这是我的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')
,会发生什么情况?

我们可以得到回溯吗谢谢,我看不出没有“”,现在可以用了