Django-Rest框架多模型

2024-05-18 09:40:09 发布

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

我开始使用Django Rest框架,它是一个很棒的工具!

我真的陷入了一些简单的事情,但没有办法知道怎么做。。。我有两种型号,客户和订单。在这里,CustomUser有0到多个订单。

我想用以下格式生成一个JSON HTTPResponse:

{
"user": {
    "city": "XXX", 
    "firstName": "XXX", 
    "zip": "XXX", 
    "taxNumber": "XXX", 
    "lastName": "XXX", 
    "street": "XXX", 
    "country": "XXX", 
    "email": "XXX"}, 
"orders": [{
        "id": "XXX",
        "plan": "XXX",
        "date": "XXX",
        "price": "XXX"
    }]
}

我已经有我的用户在会话(请求)中,我使用以下行获取所需的订单:

# 2. Load user's orders
orders = Order.objects.filter(user=request.user)

我已经创建了两个序列化程序“OrderSerializer(serializer.ModelSerializer)”和“CustomUserSerializer(serializer.ModelSerializer)”,但我不知道如何将两者合并到预期结果中。

非常感谢你的帮助。

致意


Tags: 工具django订单框架rest客户事情xxx
2条回答

因为ordersuser相关,所以应该使用Nested relationships

这个问题是老问题了,所以可能已经得到了答案,但类似这样的问题应该是可行的:

class OrderSerializer(serializers.ModelSerializer)
    class Meta:
        model = Order

class UserSerializer(serializers.ModelSerializer)
    orders = OrderSerializer(many = True)
    class Meta:
        model = user
        fields = ('city', 'firstName', 'zip', 'taxNumber', 'lastName', 'street', 'country', 'email', 'orders')

谢谢

党卫军

相关问题 更多 >