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