Нужно посмотреть, придумал ли кто-нибудь творческий подход к хранению файлов SVG в ImageField.
Из коробки django не поддерживает хранение файлов SVG в ImageField.Существует (несколько) хаков , которые позволяют сохранять SVG, НО конкретная проблема, с которой я сталкиваюсь, заключается в том, что когда объект с SVG в ImageField извлекается из базы данных,если соответствующий файл отсутствует в хранилище (по любой причине), возникает ошибка IOError, когда пытается обновить измерения ( здесь ).Это действительно не идеальное поведение.В идеале, django предложит какую-то опцию, чтобы предотвратить обновление полей измерения, но это, по-видимому, недоступно.
Для контекста рассмотрим приложение, в которое пользователю необходимо загрузить логотип.Немного напрягается поддерживать отдельные модели для файлов JPEG или PNG и файлов SVG.Для проектов DRF (которыми я являюсь), возможно, здесь есть модель с прокси-моделью, использующая сериализатор с динамической моделью .
class PublicImage(IsSVGMixin, SomeModelMixin):
id = models.UUIDField(primary_key=True,
default=uuid.uuid4,
editable=False)
image = models.ImageField(width_field='width',
height_field='height',
upload_to='public_images')
width = models.IntegerField(null=True, blank=True)
height = models.IntegerField(null=True, blank=True)