Поле изображения 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