当我向127.0.0.1:8000/tasks/10/
发出DELETE请求时,出现无法使用None作为查询值的错误。
views.py
class TaskViewSet(viewsets.ModelViewSet):
def get_queryset(self):
p1 = self.request.query_params.get('parameter')
queryset = Task.objects.nearby(p1)
return queryset
serializer_class = TaskSerializer
urls.py
task_list = views.TaskViewSet.as_view({
'get': 'list',
'post': 'create'
})
task_detail = views.TaskViewSet.as_view({
'get': 'retrieve',
'put': 'update',
'patch': 'partial_update',
'delete': 'destroy'
})
# The API URLs are now determined automatically by the router.
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^tasks/$', task_list, name='task-list'),
url(r'^tasks/(?P<pk>[0-9]+)/$', task_detail, name='task-detail'),
]
一切正常用于列表,例如对127.0.0.1:8000/tasks/
的所有请求。但是,请求都不适用于详细视图。我假设它与get_queryset()
有关。
答案 0 :(得分:1)
您的网址会将该值捕获为pk
参数,但您尝试在parameter
方法中获取get_queryset
。