django中出现错误(all()获得意外的关键字参数'id')

guz6ccqo  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(406)

我正在尝试使用django rest框架制作api
URL.py:

  1. urlpatterns = [
  2. path('', views.eventList, name="events"),
  3. path('detail/<str:pk>/', views.eventDetail, name="detail"),
  4. path('create', views.eventCreate, name="create"),
  5. path('update/<str:pk>/', views.eventUpdate, name="update"),
  6. path('delete/<str:pk>/', views.eventDelete, name="delete")
  7. ]

views.py:

  1. @api_view(['GET'])
  2. def eventList(request):
  3. events = Orders.objects.all()
  4. serializer = OrdersSerializer(events, many=True)
  5. return Response(serializer.data)
  6. @api_view(['GET'])
  7. def eventDetail(request, pk):
  8. events = Orders.objects.all(id=pk)
  9. serializer = OrdersSerializer(events, many=True)
  10. return Response(serializer.data)

当我想访问 http://127.0.0.1:8000/api/events/detail/1/ 给出了这个错误。但是 http://127.0.0.1:8000/api/events/ 还在工作。
而且我在搜索这个错误时也没有找到正确的解决方案
p、 我用inspectdb制作我的models.py

6bc51xsx

6bc51xsx1#

您需要从eventdetail视图中的order queryset中删除id=pk。

  1. @api_view(['GET'])
  2. def eventDetail(request, pk):
  3. events = Orders.objects.all() # here
  4. # or in case you need to filter by pk
  5. events = Orders.objects.filter(pk=pk)
  6. serializer = OrdersSerializer(events, many=True)
  7. return Response(serializer.data)

相关问题