【发布时间】:2016-09-10 13:08:07
【问题描述】:
我现在正在重构我的 REST API。使用router 而不是直接网址后,我无法启动我的项目。我哪里错了?
错误:
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):
...
【问题讨论】:
标签: python django django-rest-framework