【发布时间】:2018-09-09 00:54:00
【问题描述】:
我在 Django 中有两个类通过 ManyToManyField 链接(User 类是内置的 User 模型):
from django.contrib.auth.models import User
class Activity():
participants = models.ManyToManyField(User, related_name='activity_participants')
我想找到两个用户同时参与的所有活动。
我设法使用原始查询解决了我的问题(我的应用名称是“core”,因此表名中的“core”前缀):
SELECT ca.id FROM core_activity_participants AS cap, core_activity AS ca
INNER JOIN core_activity_participants AS cap2 ON cap.activity_id
WHERE cap.user_id == 1 AND cap2.user_id == 2
AND cap.activity_id == cap2.activity_id
AND ca.id == cap.activity_id
但是,如果可能的话,我想避免使用原始查询,因为它会破坏我应用其他部分的一致性。如何使用 Django 的 ORM 进行此查询或等效查询?
【问题讨论】:
标签: sql django orm django-orm