首页 > 解决方案 > 当子查询为空时,如何使 Django 查询不返回任何内容

问题描述

我有这样的子查询的 Django 查询

cust_order = TOrder.objects \
        .select_related('user') \
        .annotate(category_name=Subquery(TOrderDetail.objects
                                        .filter(t_order=OuterRef('id'),
                                                deleted_at__isnull=True,
                                                deleted_by__isnull=True)
                                        .values_list('product__product_category__name', flat=True)[:1])
                   cust_feedback=Subquery(TOrderFeedback.objects
                                                 .filter(t_order=OuterRef('id'),
                                                         deleted_at__isnull=True,
                                                         deleted_by__isnull=True,
                                                 .values_list('message', flat=True)[:1]),

问题是,有时 cust_feedback 的子查询会为空,如果 cust_feedback 为空,我该如何过滤,那么父查询应该什么都不返回?

谢谢

标签: pythondjangodjango-queryset

解决方案


推荐阅读