【发布时间】:2016-10-26 15:33:48
【问题描述】:
我正在改用 SVG 图像来表示我的电子商务平台上的类别。我之前在 Category 模型中使用 models.ImageField 来存储图像,但 forms.ImageField 验证无法处理基于矢量的图像(因此拒绝它)。
我不需要对有害文件进行彻底验证,因为所有上传都将通过 Django Admin 完成。看起来我必须在我的模型中切换到 models.FileField,但我确实想要警告上传无效图像。
Nick Khlestov 在django-rest-framework's ImageField 上写了一个SVGAndImageFormField(在文章中找到来源,我没有足够的声誉来发布更多链接)。如何在 Django 的 ImageField(而不是 DRF 的)上使用此解决方案?
【问题讨论】:
-
ImageField 和 FileField 之间的基本区别在于,首先使用 Pillow 检查文件是否为图像,并提供一些可能与您无关的属性(高度、宽度)。 FileField 不能满足您的要求吗? github.com/django/django/blob/master/django/db/models/fields/…
-
@Wtower 我希望它不允许非图像格式通过。
-
尽管 OP 不担心有害文件,但最好记住制作有害的
svg是多么容易。例如,如果您使用xml.etree,billion laughs 将使您的服务器崩溃(正如此处的许多答案所建议的那样)。
标签: python django svg django-forms