2024-03-28 10:00:38 发布
网友
在下面的例子中,我只想在filter(departments__in=depts)列表的计数大于0时应用depts。你知道吗
filter(departments__in=depts)
depts
sites = Site.objects.for_user(request.user)\ .filter(departments__in=depts)\ .filter(archived=False)
除了用if-else包装整个块之外,在过滤器中还有更好的方法吗?你知道吗
您可以使用^{}。你知道吗
filter_params = ({'archived':False}, {'departments__in':depts, 'archived':False})[len(depts) > 0] sites = Site.objects.for_user(request.user)\ .filter(**filter_params)
您可以对if块中的查询应用额外的过滤器,在我看来,这使您的意图更加明确
sites = Site.objects.for_user(request.user).filter(archived=False) if depts: sites = sites.filter(departments__in=depts)
您可以使用^{} 。你知道吗
您可以对if块中的查询应用额外的过滤器,在我看来,这使您的意图更加明确
相关问题 更多 >
编程相关推荐