10

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

我实际上陷入了一些简单的事情,但无法弄清楚该怎么做......我有两个模型,CustomUser 和 Order。在这里,一个 CustomUser 有 0 到多个 Orders。

我想生成具有以下格式的 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(serializers.ModelSerializer)”和“CustomUserSerializer(serializers.ModelSerializer)”,但我不知道如何将两者合并到预期的结果中。

非常感谢你的帮助。

此致

4

2 回答 2

18

这个问题很老,所以它可能已经被回答了,但是这样的事情应该可以工作:

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

谢谢,

党卫军

于 2014-05-05T21:07:22.623 回答
2

既然orders是相关的user,就应该使用嵌套关系

于 2013-10-31T15:40:38.297 回答