Django嵌套查询或联接两个表

2024-10-03 02:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我用下面的代码从“债务”表中列出客户的债务

但是,我想从“客户”表中查看具有相同身份证号的客户的姓名

我得到的人,我用以下代码指定,但;我无法打印到“deborts.objects.values(“customer”)”

有什么简单的方法吗

谢谢你的帮助

class CustomerDetailDebtListAPIView(ListAPIView):
    serializer_class = DebtCreateSerializer

    def get(self, request):
        # get customer , customerKey
        obj_customer = Customer.objects.get(customer=85)
        field_object_customer = Customer._meta.get_field('customer')
        # field_value_customer = getattr(obj_customer, field_object_customer.attname)
        print(obj_customer)

        result = Debt.objects.values('customer') \
            .annotate(totalDebt=Sum('totalDebt'), receivedAmount=Sum('receivedAmount')) \
            .order_by('customer')
        return Response(result)

Tags: 代码objfieldget客户objectsobjectcustomer
1条回答
网友
1楼 · 发布于 2024-10-03 02:33:08

我假设客户是外键。可以使用__运算符访问相关表的字段。这在下面的代码中显示

Debt.objects.all().annotate(totalDebt=Sum('totalDebt'), receivedAmount=Sum('receivedAmount')).order_by('customer').values('customer__surname')

或者

from django.db.models import F
Debt.objects.all().annotate(totalDebt=Sum('totalDebt'), receivedAmount=Sum('receivedAmount'), surname=F('customer__surname')).order_by('customer').values('surname')

相关问题 更多 >