Я новичок в python / django и пытаюсь обновить запись.
Вот url.py:
path('scheme/<int:pk>/', ProjectSchemeDetail.as_view(), name='schemedetail'),
И просмотр:
class ProjectSchemeDetail(APIView):
def get_object(self, pk):
try:
return ProjectScheme.objects.get(pk=pk)
except ProjectScheme.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
scheme = self.get_object(pk)
serializer = SchemeDetailSerializer(scheme)
return Response(serializer.data)
def put(self, request, pk, format=None):
project_scheme = self.get_object(pk)
serializer = ProjectSchemeInputSerializer(project_scheme, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, pk, format=None):
scheme = self.get_object(pk)
scheme.delete()
return Response({'status':'Deleted'})
И сериализатор:
class ProjectSchemeInputSerializer(serializers.Serializer):
name = serializers.CharField(allow_blank=False, max_length=250)
parent_scheme_id = serializers.IntegerField(validators=[validate_id])
rule = serializers.CharField(allow_blank=True, max_length=5000)
При попытке PUT
обновить сообщение я получаю такую ошибку:
NotImplementedError at /scheme/scheme/5/
`update()` must be implemented.
Как это исправить?