【发布时间】:2023-03-28 02:34:01
【问题描述】:
我目前正在努力解决一些 django 休息框架问题。我想为我的 APIView 定义一个删除请求。
这是我的观点.py:
class Employee(APIView):
permission_classes = (AllowAny, )
serializer_class = EmployeeSerializer
def get(self, request, pk, format=None):
employee = EmployeeModel.objects.get(pk=pk)
serializer = EmployeeSerializer(employee, many=False)
return Response(serializer.data)
def delete(self, request, pk, format=None):
employee = EmployeeModel.objects.get(pk=pk)
employee.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
这是我的 urls.py:
urlpatterns = [
path('', views.index, name='index'),
path('admin/', admin.site.urls),
path('api/auth/', include('rest_framework.urls')),
path('api-token-auth/', obtain_auth_token, name='api_token_auth'),
path('api/', include(router.urls)),
path('api/v1/employeelist/', views.EmployeeList.as_view()),
path('api/v1/employee/<pk>', views.Employee.as_view())
]
序列化器:
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = '__all__'
depth = 1
例如,当我调用 /api/v1/employee/4 时,get 方法可以正常工作。 API 的 UI 向我显示了允许的方法:GET、DELETE、HEAD、OPTIONS,但是当我发送删除请求时,我总是收到错误 403 禁止。
有人知道为什么吗?
【问题讨论】:
-
你能炫耀一下EmployeeSerializer类吗
标签: python django django-rest-framework