只有在Django中提供了查询时,才对查询集应用过滤器



假设我有一个名为Article的模型,字段为title。我有一个方法,它为这个模型返回一个查询集,该方法采用一个名为query的可选参数,如果提供了该参数,它将用于筛选出查询集。这样的东西:

def get_articles(query=None):
if query:
return Article.objects.filter(title__icontains=query)
else:
return Article.objects.all()

这很好,但请注意这个方法有两个返回语句,如中所示,我正在编写两个单独的查询。有办法一次搞定吗?换句话说,理想的场景是只写一个查询,而不是两个。谢谢你的帮助。

您可以使用将return语句的数量减少到一个

def get_articles(query=None):
qs= Article.objects.all()
if query:
qs=qs.filter(title__icontains=query)
returnqs

相关内容

  • 没有找到相关文章

最新更新