假设我有一个名为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