Метод PUT также размещает данные в DRF
Я создаю простое приложение для блога и использую Django-Rest-Framework
для API
s, Все работает нормально, но когда, Post работает нормально.
Я использовал API URL, например http://127.0.0.1:8000/api/blogs/
для получения результатов и публикации результатов, затем я начал работать над методом PUT
. Когда я вставляю URL с ID, например http://127.0.0.1:8000/api/blog/19/
, он показывает
Разрешить: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
.
поэтому я попытался сделать PUT
запрос через него, но он не редактировал данные, он размещал данные, то есть создавал новые данные.
Потом я прочитал несколько руководств и created a new
UpdateView (genericView) затем определил все функции для него.
Но потом он снова публикует данные НЕ редактирует данные.
models.py
class Blog(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=1000, default='')
description = models.CharField(max_length=1000, default='')
class Image(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='images')
image_text = models.CharField(max_length=1000, default='')
views.py
class BlogView(viewsets.ModelViewSet):
serializer_class = BlogSerializer
queryset = Blog.objects.all()
class BlogUpdateView(generics.UpdateAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
def update(self, request, *args, **kwargs):
instance = self.get_object()
instance.title = request.data.get("title")
instance.description = request.data.get("description")
instance.save()
serializer = BlogSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
serializers.py
class BlogSerializer(serializers.ModelSerializer):
images = ImageSerializer(many=True)
class Meta:
model = Blog
fields = ("id", "title", "description", "images")
def create(self, validated_data):
.......
..............
urls.py
path('api/blogupdate/<int:pk>/', BlogUpdateView.as_view(), name="blogupdate")
Я пробовал много раз, но он все еще публикует данные, а не редактирует.
Я не могу использовать форму для работы с данными, потому что я использую nested response
.
Любая помощь будет очень признательна.