В моих моделях есть поле, которое является ImageField, и каждый раз, когда я пытаюсь обновить данные с помощью API с возможностью просмотра. API возвращает ошибку для моего ImageField, которая равна Отправленные данные не были файлом. Проверьте тип кодировки в форме. , когда она пуста, но в экземпляре это не .
Как я могу игнорировать данные и оставить экземпляр как есть при обновлении? Но когда я загружаю изображение в поле изображения, ошибка не возвращается.
Модель
class Report(models.Model):
# other fields
image = models.ImageField(upload_to="reports/image-report/", max_length=1000, null=True, blank=True)
Сериализатор
class ReportSerializer(serializers.ModelSerializer):
# other fields
image = serializers.ImageField(max_length=None, allow_empty_file=True, use_url=True)
class Meta:
model = Report
fields = "__all__"
def update(self, instance, validated_data):
# other fields
instance.image = validated_data.get('image', instance.image)
instance.save()
return instance
Просмотр
class ReportViewSet(viewsets.ModelViewSet):
queryset = Report.objects.all()
serializer_class = ReportSerializer
permission_classes = [IsAuthenticated]
parser_classes = (MultiPartParser, FormParser) # for uploading attachments
pagination_class = LimitOffsetPagination