django update () должен быть реализован - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в 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.

Как это исправить?

...