在管理员中上传图片时,出现错误:不允许使用文件扩展名“ jpg”。允许的扩展名是:”

时间:2018-07-28 05:37:49

标签: django

我使用以下模型上传图片:

class Image(models.Model):
    title = models.CharField(max_length=20)
    upload = models.ImageField(upload_to='uploads/img/')
    page = models.ForeignKey(Page, blank=True, null=True, on_delete=models.SET_NULL)
    description = models.CharField(max_length=140)

    def __str__(self):
        return self.title

在开发中,我可以使用管理页面进行上传而没有任何问题,但是由于生产中的某些原因,它给了我错误:

https://i.imgur.com/OhyvPzw.png

我很沮丧,特别是因为我可以使用以下模型上传它,而不会在生产中出现任何问题:

class Document(models.Model):
    title = models.CharField(max_length=20)
    upload = models.FileField(upload_to='uploads/docs/')
    page = models.ForeignKey(Page, blank=True, null=True, on_delete=models.SET_NULL)
    description = models.CharField(max_length=140)

    def __str__(self):
        return self.title

我尝试无条件搜索错误,而我能找到的最好的方法是文件验证,我认为这首先是使用ImageField的目的!

1 个答案:

答案 0 :(得分:1)

我认为这是可行的,如果您像这样更改图像模型:

from django.core.validators import FileExtensionValidator

class Image(models.Model):
    title = models.CharField(max_length=20)
    upload = models.ImageField(upload_to='uploads/img/', validators=[FileExtensionValidator(['jpg'])])
    page = models.ForeignKey(Page, blank=True, null=True, on_delete=models.SET_NULL)
    description = models.CharField(max_length=140)

    def __str__(self):
        return self.title