【发布时间】:2013-06-02 17:48:27
【问题描述】:
假设我有以下 Django 模型:
class myClass1(models.Model):
myField1 = models.IntegerField()
class myClass2(models.Model):
myLocalClass1 = models.ManyToManyField(myClass1)
此外,假设我有一个唯一的 myClass1 列表:
a = myClass1(myField=1)
b = myClass1(myField=2)
c = myClass1(myField=3)
myTargetList = [a, b, c]
现在,我想使用 Q 对象编写一个 Django 查询,以便它返回所有具有 myTargetList 的任何成员作为 myLocalClass1 的 myClass2。此外,我事先不知道 myTargetList 的确切大小。
我该怎么做?这显然行不通:
myClass2.objects.filter(Q(myLocalClass1__in=myTargetList))
【问题讨论】:
-
myClass2.objects.filter(myLocalClass1__in=myTargetList)将起作用(假设那些具有 ID 并保存到数据库中)。如果不是这个,你的问题是什么?您是否正在寻找与 myTargetList 中的项目完全相同的 myClass2 对象?
标签: django django-models django-q