Django所有可能的Q()参数?

时间:2018-04-13 20:01:12

标签: python django python-3.x

我正在阅读Django文档,尤其是关于Q()类的文档。 它有几个部分,如:Q() objectsComplex lookups with Q objects
在那里,作者提到可以传递给Q()的论据,如

Q(question__startswith='What')

我知道还有其他可能的论点,比如

Q(name__icontains='What')

这让我得出结论,所有可用args的完整列表必须存在于某处,不幸的是,尽管如此,搜索官方文档或谷歌搜索导致什么

如果有人能解释我,在这种情况下我该怎么办,我们将非常感激

* UPD @FamousJameous评论把我指向了正确的地方,如果这个帖子应该保留为像我这样的笨蛋或者因为无用而删除。

1 个答案:

答案 0 :(得分:1)

正如文件所说:

  

Q对象(如F对象)将SQL表达式封装在   可以在与数据库相关的操作中使用的Python对象

因此Q对象可以接收模型字段或带注释列的所有字段。所以如果你定义一个像这样的模型:

class Home(models.Model):
    address = models.CharField(max_length=255)

您可以使用:

Home.objects.filter(Q(address="user address"))

因此您可以使用模型中的任何字段和Q对象。您还可以在查询中使用所有内置fields lookupscustom-lookups