首页 > 解决方案 > Django / 模型图像字段要求默认图像

问题描述

我不想在 Django 中为我的模型添加默认图像。但是当我从模型中删除默认图像时,它说图像属性没有与之关联的文件。当用户不添加图像时,我应该如何解决它不会要求图像?

class MainPost(models.Model):
    title = models.CharField(max_length = 50,verbose_name= ('Başlık'))
    content = models.TextField(verbose_name= ('Yazı'))
    date_posted = models.DateTimeField(default=timezone.now)
    image = models.ImageField(default='profile_pics/default.jpg',upload_to = 'images',blank=True,null=True,verbose_name = ('Resim'))
    author = models.ForeignKey(User,on_delete=models.CASCADE)

    def __str__(self):
        return self.title

    def save(self,*args, **kwargs):
        super(MainPost,self).save(*args,**kwargs)

        img = Image.open(self.image.path)

        if img.height > 500 or img.width > 500:
            output_size = (500,500)
            img.thumbnail(output_size)
            img.save(self.image.path)

    def get_absolute_url(self):
        return reverse('comment', kwargs={'pk':self.pk})

标签: pythondjango

解决方案


我猜您manage.py makemigrations manage.py migrate在测试 ImageField 之间缺少一步。如果之前指定了默认值,则 db 中可能存在仍然具有默认路径的条目,如果它不存在则无法解析。


推荐阅读