初始化Rest Framework URL时出错

瓦西里

我现在正在重构我的REST API。使用router代替直接URL后,我无法启动我的项目。我哪里错了?

错误:

TypeError: as_view() takes exactly 1 argument (3 given)

models.py:

class Device(models.Model):
    ...

class Measure(models.Model):
    device = models.ForeignKey(Device)
    ...

class PeriodAverage(models.Model):
    measure = models.ForeignKey(Measure) 

urls.py:

router = routers.DefaultRouter()
router.register(r'devices', views.DevicesList)
router.register(r'devices/{pk}/measures', views.MeasuresList, 'Measure')
router.register(r'measures/{pk}/averages', views.PeriodAveragesList, 'Average')

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/v1/', include(router.urls)),
]

views.py:

class DevicesList(viewsets.ModelViewSet):
    queryset = Device.objects.all()
    serializer_class = serializers.DeviceSerializer


class MeasuresList(viewsets.ModelViewSet):
    serializer_class = serializers.MeasureSerializer

    def get_queryset(self):
        ...


class PeriodAveragesList(ListAPIView):
    serializer_class = serializers.PeriodAverageSerializer

    def get_queryset(self):
        ...
塞尔丘克

路由器与ViewSets配合使用您的PeriodAveragesListextendsListAPIView是基于类的视图,而不是ViewSet

如果您仍要在该视图中使用路由器,请参阅此答案以获取解决方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章