Django - Rest Framework Несколько моделей
Я начинаю использовать Django Rest Framework, это отличный инструмент!
Я действительно застрял в чем-то легком, но не могу понять, как это сделать... У меня есть две модели: CustomUser и Order. Здесь 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 orders
orders = Order.objects.filter(user=request.user)
Я создал два сериализатора "OrderSerializer (serializers.ModelSerializer)" и "CustomUserSerializer (serializers.ModelSerializer)", но я не знаю, как объединить оба в ожидаемый результат.
Большое спасибо за вашу помощь.
С наилучшими пожеланиями
Ответы
Ответ 1
Вопрос старый, поэтому на него, возможно, ответили, но что-то вроде этого должно работать:
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')
Спасибо,
СС
Ответ 2
Так как orders
связаны с user
, вы должны использовать Вложенные отношения.