Django多对多

问题描述 投票:0回答:1

我对django相当陌生,我正在尝试使用以下模型创建应用程序

class User(models.Model):
    name = models.CharField(max_length=20)


class Group(models.Model):
    identifier = models.CharField(max_length=3,primary_key=True)
    name = models.CharField(max_length=120)
    def __str__(self):
        return self.name
class Department(models.Model):
    users = models.ManyToManyField(User)
    ric = models.CharField(max_length=12,primary_key=True)
    name = models.CharField(max_length=60)
    def __str__(self):
        return self.name

class Encounter(models.Model):
    department = models.ForeignKey(Department,on_delete=models.DO_NOTHING)
    message = models.CharField(max_length=120)
    datetime = models.DateTimeField()

该用户最终将成为登录用户。我可以为用户获取所有部门对象的集合,但是如何获取具有所述部门集合的所有遭遇者的集合?是否有一些内置的方式或者我只是在所有部门上使用for循环?

python django django-models
1个回答
0
投票

一种可能的方式:

encounters = Encounter.objects.filter(
    department__in=QUERYSET_CONTAINING_DEPARTMENTS,
).distinct()

您可能想要阅读:Many-to-one relationships

© www.soinside.com 2019 - 2024. All rights reserved.