如何解决允许通过Django管理员将SVG文件上传到ImageField
事实证明,它SVGAndImageFormField
与DRF没有依赖关系ImageField
,它仅增加了由进行的验证django.forms.ImageField
。
因此,为了在Django Admin中接受SVG,我 将模型的更改为指定了覆盖,如下所示:ImageField
,FileField
并
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
exclude = []
field_classes = {
'image_field': SVGAndImageFormField,
}
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
admin.site.register(MyModel, MyModelAdmin)
现在,它可以接受所有以前的图像格式以及SVG。
编辑:刚刚发现,即使您不从切换models.ImageField
到,它也能正常工作models.FileField
。的height
和width
属性models.ImageField
仍然适用于栅格图像类型,并且将其设置None
为SVG。
解决方法
我正在切换为SVG图片,以表示电子商务平台上的类别。我以前models.ImageField
在Category模型中使用过存储图像,但是forms.ImageField
验证无法处理基于矢量的图像(因此将其拒绝)。
我不需要对有害文件进行全面验证,因为所有上传都将通过Django
Admin完成。看起来我必须models.FileField
在模型中切换到,但是我确实希望警告不要上传无效的图片。
Nick Khlestov在django-rest-framework的ImageField上写了一个SVGAndImageFormField(在文章中找到源,我没有足够的声誉来发布更多链接)。如何在Django的ImageField(而不是DRF)上使用此解决方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。