我使用以下代码从“债务”表中列出了客户的债务。
但是,我想从“客户”表中查看具有相同 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)
最佳答案
我假设客户是外键。您可以使用 __
运算符访问相关表的字段。这如下面的代码所示
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')
关于python - django嵌套查询或连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58656843/