Как обновить модель, содержащую поле ImageField в django rest framework?
Мне нужна помощь в обновлении модели, которая содержит ImageField с django rest framework (3.12.4).
Я проверил много вопросов, связанных с этим, но ни один из них не помог решить проблему.
models.py
class Image(models.Model):
title = models.CharField(max_length=200, unique=True)
image = models.ImageField(upload_to="images/")
def delete(self, *args, **kwargs):
self.image.delete()
super().delete(*args, **kwargs)
serializers.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = ['id', 'title', 'image']
views.py
class ImageViewSet(viewsets.ModelViewSet):
serializer_class = ImageSerializer
queryset = Image.objects.all()
parser_classes = (MultiPartParser, FormParser)
def create(self, request, *args, **kwargs):
file_serializer = ImageSerializer(data=request.data)
if file_serializer.is_valid():
file_serializer.save()
return Response(file_serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Таким образом я могу добавить новое изображение. Файл успешно добавляется в папку images и поля сериализуются правильно.
Я также могу удалить созданное изображение, удалив файл из папки images и экземпляр из базы данных. Однако, когда я обращаюсь к экземпляру, я не могу изменить его без перезагрузки файла; поэтому, если я хочу изменить заголовок, я должен снова загрузить файл и затем сделать запрос.
Есть ли способ обновить модель, которая содержит ImageField в django rest framework?