【发布时间】:2014-07-17 00:31:25
【问题描述】:
我有模型:
ModelA, Conversation
class ModelA:
conversations = models.ManyToManyField(Conversation)
我想检索与 id 为 1、2、3 对话的 ModelA 的记录(比如说)。
我试过这个:
ModelA.objects.filter(conversations__id__in=[1,2,3])
但这并不是在做精确过滤。如果记录 A 只有一个 id 为 1 的对话,记录 B 只有一个 id 为 2 的对话,记录 C 有 3 个 id 为 1,2,3 的对话,然后上面的代码返回所有 3 条记录。但是,我只想检索记录 C,因为只有具有所有对话 1、2、3 的记录。
我需要确切的或可能的子集。我的意思是,如果我搜索 [1,2] 则记录 A,B 不应该出现,但记录 C 可以出现([1,2] 是 [1,2,3] 的子集)
如果不清楚请告诉我。
【问题讨论】:
标签: django