具有以下代码序列:
queryset = self.filter(
brand_id__in=(
UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
)
如果没有UserObjectPermission对象匹配过滤器content_type=brand_ctype, user=user
,则最终结果将是空查询集,因为brand_id __in将在[空查询集]中搜索。
但是我需要反过来,如果这个过滤器(content_type=brand_ctype, user=user
)没有UserObjectPermision对象,那么返回所有对象,也就是忽略这个过滤器(
brand_id__in=(UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
我需要brand_id__in过滤器只有在查询集中至少有一个对象时才运行。
2条答案
按热度按时间y1aodyip1#
可以尝试使用OR(
|
)运算符qaxu7uf22#
您可以检查查询集是否包含任何项目: