#django #django-rest-framework
#django #django-rest-framework
Вопрос:
Я не могу найти примеры использования исправления для обновления частичного представления в rest framework, и это не вычислительно для меня. Вот мой код:
class ArworkIsSold(generics.RetrieveUpdateAPIView):
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
serializer_class = ArtworkSerializer
queryset = Artwork.objects.all()
def partial_update(self, request, pk=None):
data = {sold:True,forSale:False}
serializer = ArtworkSerializer(context={'request': request},data=data, partial=True)
serializer.is_valid()
serializer.save()
serializer.is_valid(raise_exception=True)
return Response(serializer.data)
Однако он не обновляется, и я получаю эту ошибку:
Ошибка имени: имя «продано» не определено
Моя модель действительно продана, и я пытаюсь просто установить данные в представлении вместо отправки их из запроса ajax. Я просто хочу нажать на представление и обновить два поля.
Ответ №1:
Вы не можете использовать неопределенную переменную в качестве ключа словаря. Используйте строки в качестве ключей, а затем передайте словарь в качестве параметра «данные»:
class ArworkIsSold(generics.RetrieveUpdateAPIView):
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
serializer_class = ArtworkSerializer
queryset = Artwork.objects.all()
def partial_update(self, request, pk=None):
data = {'sold':True, 'forSale':False}
serializer = ArtworkSerializer(context={'request': request},data=data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
Комментарии:
1. Спасибо, это было все. Хотелось бы, чтобы на сайте rest Framework было несколько примеров обновления.