tutorial - python rest api framework



Django Rest 프레임 워크의 다중 모델? (1)

APIView 는 사용자가 GET이 단일 모델을 반환 할 것으로 기대하는 ModelViewSet 과 반대되는 APIView 이기 때문에 사용자 정의 할 수 있습니다. 너무 이상하지는 않습니다. 예를 들어, 다른 모델의 여러 객체를 반환 할 수 있습니다. 당신의 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',
    })

장고 Rest 프레임 워크를 사용하고 있습니다. 여러 모델을 직렬화하고 응답으로 보내려고합니다. 현재보기 당 하나의 모델 만 보낼 수 있습니다 (아래 CartView 는 Cart 객체 만 보냅니다). 다음 모델 (관련 없음)이있을 수 있습니다.

class Ship_address(models.Model):
   ...

class Bill_address(models.Model):
   ...

class Cart(models.Model):
   ...

class Giftwrap(models.Model):
   ...

DjangoRestMultiplemodels 사용하여 시도했지만 괜찮습니다.하지만 몇 가지 한계가 있습니다. 내장 된 방법이 있습니까? 다음보기에서 만든 serializer를 추가 할 수 있습니까?

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-rest-framework