Поле изображения Django DRF не принимает нулевые значения

Поле изображения DRF в Django не принимает нулевых значений.

Моя модель состоит из image = models.ImageField(upload_to='uploads/', blank=True, null=True)

Если я загружаю файл, то проблем нет. Но если я оставляю его пустым, то возникает следующая ошибка:

The submitted data was not a file. Check the encoding type on the form.

Я хочу сделать поле изображения необязательным, поэтому я установил null=True и blank=True. Но это, похоже, не работает.

В DRF ваша модель проходит через сериализатор добавьте это в ваш сериализатор:

class ImagePostSerializer(serializers.ModelSerializer):
    image = serializers.ImageField(required=False)
    class Meta:
        model = models.ImagePost

Я нашел решение. Я использовал другой сериализатор для создания экземпляра этой модели. Я удалил сериализатор, и теперь все работает.

Использовать поле изображения DRF в сериализаторе

serializers.ImageField(required=False)

DRF ImageField проверяет содержимое загруженного файла на соответствие известному формату изображения. Соответствует django.forms.fields.ImageField

ImageField(max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL)

Ссылка: https://www.django-rest-framework.org/api-guide/fields/#imagefield

Вернуться на верх