首页 > 解决方案 > 在 Django 默认配置文件页面中接受多个图像扩展

问题描述

我正在尝试在 Django 中创建一个默认用户配置文件图像,该图像 jpg同时png接受models.py.

目前jpg有效,但如果我同时更改default.jpg代码default.png和实际的默认图像,图像不会显示。

有没有办法告诉 Django 接受这两个扩展?

class Profile(models.Model):
    users = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics') # accept default.png 

标签: imagedjango-models

解决方案


您可以使用验证器验证文件扩展名。

from django.core.validators import FileExtensionValidator


class Profile(models.Model):
    image = models.ImageField(
        validators=[FileExtensionValidator(['jpg', 'png'])]
    )

如果文件名本身很重要,那么您可以编写自己的验证器或在用户上传文件后重命名文件。


推荐阅读