【问题标题】:Default image in django model File Field?django模型文件字段中的默认图像?
【发布时间】:2021-03-30 02:58:23
【问题描述】:

我想要模型文件字段中的默认图片,我的代码不起作用。文件字段为空。

file = models.FileField(upload_to='team_icons', null='True', blank='True', 
default='pictures/picture.png')

【问题讨论】:

标签: python django


【解决方案1】:

您需要使用settings.MEDIA_ROOT 基本路径添加默认图像。 MEDIA_ROOT 是保存用户上传文件的目录的绝对文件系统路径。

file = models.FileField(upload_to='team_icons', null='True', blank='True', 
default='settings.MEDIA_ROOT/pictures/picture.png')

还要确保该图像存在于该路径。

【讨论】:

    【解决方案2】:

    使用ImageField 将图像存储在对象中,使用FileField 保存它们。

    在您的模型中:

    class YourModel(models.Model):
        image = models.ImageField(upload_tp='team_icons', null=True, blank=True)
    

    如果你的表格:

    class YourForm(forms.ModelForm):
        image = models.FileField()
    
        class Meta:
            model = YourModel
            fields = '__all__'
    

    【讨论】:

    • 我明白了,但是可以直接在de模型字段中实现吗。
    • 您为什么要这样做?如果你想存储一张图片,它有一个完美的工作领域,只需使用它。
    • 因为我不想重写应用程序。我可以迅速处理它,但如果 django 有一个简单的方法,我会更好。
    • 不会花很长时间,只需更改字段并迁移即可。顺便说一句,您的null='True', blank='True' 可能会导致错误,因为这些参数不接受大括号中的参数而是布尔值,即您应该像null=True, blank=True 一样写它
    猜你喜欢
    • 2018-05-23
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2012-08-09
    • 2015-11-16
    相关资源
    最近更新 更多