Django Rest框架 - 嵌套路由器

时间:2014-09-25 15:23:29

标签: django django-rest-framework

我尝试使用此URL结构创建嵌套序列化程序:localhost / ficha / {pk} / propuestas /

我找到了drf-nested-routers软件包,我试图按照这些示例实现它,但我不确定我是否以正确的方式使用它。

url.py

router.register(r'fichas', views.FichasViewSet,)
fichas_router = routers.NestedSimpleRouter(router, r'fichas', lookup='propuesta')
fichas_router.register(r'propuestas', views.PropuestaViewSet)

urlpatterns = patterns('',
    url(r'^', include(router.urls)),
    url(r'^', include(fichas_router.urls)),
    [...]

views.py

class FichasViewSet(viewsets.ModelViewSet):
    queryset = Fichas.objects.all()
    serializer_class = FichasSerializer

    def pre_save(self, obj):
        obj.owner = self.request.user

    def post_save(self, obj, created=False):
        obj.group = self.request.user.groups.values_list('id', flat=True)

class PropuestaViewSet(viewsets.ModelViewSet):
    queryset = Propuesta.objects.all()

    def list(self, request, domain_pk=None):
        serializer = PropuestaSerializer(queryset, many=True)
        propuestas = self.queryset.filter(domain=domain_pk)
        return Response(serializer.data)

    def retrieve(self, request, pk=None, domain_pk=None):
        propuestas = self.queryset.get(pk=pk, domain=domain_pk)
        return Response(serializer.data)

我有一个TypeError: new ()只需要5个参数(给定4个)

0 个答案:

没有答案