Python Django Rest框架中的多个模型?
我正在使用。我想序列化多个模型并作为响应发送。目前,每个视图只能发送一个模型(如下面的Python Django Rest框架中的多个模型?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在使用。我想序列化多个模型并作为响应发送。目前,每个视图只能发送一个模型(如下面的CartView仅发送购物车对象)。以下型号(不相关)可能存在 class Ship_address(models.Model): ... class Bill_address(models.Model): ... class Cart(models.Model): ... class Giftwrap(models.Model): ... 我试过使用,它工作正常,但有一些限制。
CartView
仅发送购物车对象)。以下型号(不相关)可能存在
class Ship_address(models.Model):
...
class Bill_address(models.Model):
...
class Cart(models.Model):
...
class Giftwrap(models.Model):
...
我试过使用,它工作正常,但有一些限制。有内置的吗?我不能附加到在以下视图中创建的序列化程序吗
from rest_framework.views import APIView
class CartView(APIView):
"""
Returns the Details of the cart
"""
def get(self, request, format=None, **kwargs):
cart = get_cart(request)
serializer = CartSerializer(cart)
# Can't I append anything to serializer class like below ??
# serializer.append(anotherserialzed_object) ??
return Response(serializer.data)
我真的很喜欢DRF。但是这个(发送多个对象的)用例让我想到,如果编写一个普通的Django视图更适合这样的需求。您可以自定义它,它也不会太奇怪,因为这是一个
APIView
(与人类期望GET返回单个模型的ModelViewSet
相反)例如,您可以在GET响应中从不同的模型返回多个对象
def get(self, request, format=None, **kwargs):
cart = get_cart(request)
cart_serializer = CartSerializer(cart)
another_serializer = AnotherSerializer(another_object)
return Response({
'cart': cart_serializer.data,
'another': another_serializer.data,
'yet_another_field': 'yet another value',
})
如果您能扩展您的答案,告诉我如何使用分页功能,我将不胜感激。