2016-08-08 75 views
-2

我正在使用Django和mongoengine。我有一个模型类与一个题词列表,我想获得在该列表中有一个id的文档。Django数组包含字段

classes = Classes.objects(inscriptions__contains=request.data['inscription']).all()

回答

2

也许我失去了一些东西......但似乎你应该使用.filter()

classes = Classes.objects.filter(inscriptions__contains=request.data['inscription']) 
+0

事实上,它工作,没有教它在阵列上工作。谢谢。 过滤器和我的方式有什么区别? – elhoucine

1

这个答案是在参考了rnevius回答您的评论

在使用ORM进行数据库调用时,在Django ORM中,如果您使用的是,它通常会返回QuerySet或模型的对象(如果使用get()/number等,取决于您正在使用哪个返回的查询集以外的函数。

Queryset函数的结果可以用来实现进一步的细化,就像你喜欢执行一个order()或只收集distinct()等一样。Queryset是懒惰的,这意味着它只有在数据库时才会触及数据库实际上在分配时没有使用。你可以找到更多关于他们的信息here

因为不返回queryset的函数不能实现这样的事情。

花费时间并通过Queryset文档深入解释并提供了示例。理解使应用程序更高效的行为是有用的。

相关问题