【问题标题】:django nested query or join two tablesdjango 嵌套查询或连接两个表
【发布时间】:2020-02-27 14:38:27
【问题描述】:

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

但是,我想从“客户”表中查看具有相同 ID 号的客户的姓名和姓名。

我得到了我用以下代码指定的人,但是;我无法打印到“Debts.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)

【问题讨论】:

  • 您可以将嵌套值添加到 docs 中描述的 DRF

标签: python django rest join django-rest-framework


【解决方案1】:

我假设客户是外键。您可以使用__ 运算符访问相关表的字段。如下代码所示

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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多