Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Django ORM同时过滤2个属性_Django_Django Models_Many To Many_Django Queryset_Django Orm - Fatal编程技术网

如何使用Django ORM同时过滤2个属性

如何使用Django ORM同时过滤2个属性,django,django-models,many-to-many,django-queryset,django-orm,Django,Django Models,Many To Many,Django Queryset,Django Orm,我有以下型号: 类父级(models.Model): 所涉及的项目=模型.ManyToManyField(项目,通过=所涉及的项目) 涉及的类项(models.Model): 父项=模型.ForeignKey(父项,相关的\u name='item') 项目=型号。外键(项目) kind=models.PositiveIntegerField() 我想检索所有父项s,其中项的pk=20,其项所涉及的的种类=10 编辑: 假设我有以下对象: Parent(pk=1) Parent(pk=2) P

我有以下型号:

类父级(models.Model):
所涉及的项目=模型.ManyToManyField(项目,通过=所涉及的项目)
涉及的类项(models.Model):
父项=模型.ForeignKey(父项,相关的\u name='item')
项目=型号。外键(项目)
kind=models.PositiveIntegerField()
我想检索所有
父项
s,其中
的pk=20,其
项所涉及的
的种类=10

编辑:

假设我有以下对象:

Parent(pk=1)
Parent(pk=2)
Parent(pk=3)
ItemInvolved(pk=11, parent=1, item=18, kind=10)
ItemInvolved(pk=12, parent=1, item=19, kind=10)
ItemInvolved(pk=13, parent=1, item=20, kind=10)
ItemInvolved(pk=14, parent=2, item=20, kind=10)
ItemInvolved(pk=15, parent=3, item=19, kind=10)
ItemInvolved(pk=16, parent=3, item=20, kind=20)
我需要一个能够产生以下结果的查询:

[<Parent: 1>, <Parent: 2>]
[,]
parents=Parent.objects.filter(项目=20,项目种类=10)

嗯。明白了

parents = Parent.objects.filter(item_involved=20, item_involvement__kind=10)

有关的进一步说明。

如果要记录异常,如果相应的查询未成功:

试试看:
parent=parent.objects.get(项目=20,项目种类=10)
例外情况除外,如e:

打印“[CRITICAL]-{}”。格式(e)

这不符合我的要求。这通过它自己的
pk
过滤
Parent
。我错误地接受了一个修改。很抱歉谢谢你指出!我只是改变了它。添加了一些内容来阐明我想要实现的目标。另外,
项目种类
(或者更确切地说,
项目种类
,我更改了名称)不应该工作。更新了我的答案(再次!)无法使用
项目种类
<代码>所涉及的项目不包含
种类
这是一个相关字段。如果以下任何答案对您有所帮助,那么最好接受一个!