如果有以下型号:
class Donation(models.Model):
user = FKey(User)
project = FKey(Project)
...
class Campaign(models.Model):
user = Fkey(User)
project = FKey(Project)
...
class Project(models.Model)
...
什么是最简单的django ORM查询,用于查找与给定用户关联的所有项目的列表。
一个直接的解决方案是从两个模型中获取项目的所有ID,并查询给定ID的项目模型。
但必须有更好的解决方案。
答案 0 :(得分:2)
执行此操作的最简单的直接ORM查询可以是
from django.db.models import Q
Project.objects.filter(
Q(id__in=Campaign.objects.filter(user=SomeUser).values('project')) |
Q(id__in=Donation.objects.filter(user=SomeUser).values('project'))
)
答案 1 :(得分:0)
我认为我们无法合并Campaign
QuerySet和Donation
所以我们必须分两步完成:
Project.objects.filter(id = Campaign.objects.filter(user = searchedUser))
Project.objects.filter(id = Donation.objects.filter(user = searchedUser))
现在你可以在你的页面中与用户分享的活动和捐赠离婚,这样才有优势:)