使用django查询语言查询连接的对象

使用django查询语言查询连接的对象,django,django-orm,Django,Django Orm,我刚开始使用django查询语言,遇到了一些困难。我希望方法get\u present\u users()返回连接到某个饮料对象的所有用户,其中包含一个“Presence”对象。我知道我可以通过以下方式获取所有相关的状态对象: Presence.objects.filter(event=self.pk) 但是,我想不出一种方法可以将这个查询集提供给所有用户。你们能帮我一个忙吗 class Drink(BaseModel): date = models.DateField() c

我刚开始使用django查询语言,遇到了一些困难。我希望方法get\u present\u users()返回连接到某个饮料对象的所有用户,其中包含一个“Presence”对象。我知道我可以通过以下方式获取所有相关的状态对象:

Presence.objects.filter(event=self.pk)
但是,我想不出一种方法可以将这个查询集提供给所有用户。你们能帮我一个忙吗

class Drink(BaseModel):
    date = models.DateField()
    comments = models.TextField(blank=True)

class Presence(BaseModel):
    event = models.ForeignKey(Drink)
    submitted_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='presence_submitted_by')
    present_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='presence_present_user')

如果您试图编写一个函数,该函数通过
状态
对象获取可与
饮料
关联的所有
用户
,而不是试图从
状态
获取
用户列表

from django.contrib.auth.models import User

...

class Drink(model.Models):
    ...

    def get_present_users(self):
        return User.objects.filter(presence_present_user__event=self)

...
这将允许您编写:

drink = Drink.objects.get(id=1)
print(drink.get_present_users())
>> [<User: >, <User: >]
drink=drink.objects.get(id=1)
打印(饮料。获取当前用户()
>> [, ]