Django:如果搜索空列表
具有此代码序列:
queryset = self.filter(
brand_id__in=(
UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
)
如果没有userObjectpermissign对象与过滤器content_type = brand_ctype,user = user =用户
匹配,则最终结果将为空QUERYSET,因为Brand_ID __in将在[空QuerySet]中搜索。
但是我需要相反。如果此过滤器没有userObjectPermision对象(content_type = brand_ctype,user = user = user
),则返回所有对象,即忽略此过滤器(
brand_id__in=(UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
我需要brand_id__in filter才能运行至少只有在QuerySet中的一个对象。
Having this code sequence:
queryset = self.filter(
brand_id__in=(
UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
)
If there is no UserObjectPermission object that matches the filter content_type=brand_ctype, user=user
then the end result will be empty queryset, because brand_id __in will search in [empty queryset].
But I need the reverse. If there is no UserObjectPermision object for this filter (content_type=brand_ctype, user=user
) then return all objects, that is, ignore this filter (
brand_id__in=(UserObjectPermission.objects.filter(
content_type=brand_ctype,
user=user,
).values_list('object_pk')
)
I need the brand_id__in filter to run only if there is at least one object in the queryset.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试(
|
)操作员you can try the OR (
|
) operator您可以检查QuerySet是否包含任何项目:
You can check if the queryset contains any items: