Yuv*_*uvi 23 django django-orm
我正在使用一个ImageField
在我的模型上存储个人资料图片.
如果没有定义图像,如何将其设置为返回默认图像?
小智 33
我没有试过这个,但我相对肯定你可以把它设置为你的领域的默认值.
pic = models.ImageField(upload_to='blah', default='path/to/my/default/image.jpg')
Run Code Online (Sandbox Code Playgroud)
编辑:愚蠢的StackOverflow不会让我评论其他人的答案,但旧的片段不是你想要的.我强烈推荐django-imagekit,因为它可以非常轻松,干净地完成大量的图像调整和操作.
小智 19
在models.py中
image = models.ImageField(upload_to='profile_pic', default='default.jpg')
Run Code Online (Sandbox Code Playgroud)
在 settings.py 中添加:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
现在,手动将名称为“default”的图像添加到媒体文件夹中。
小智 8
理论上,您也可以在模型定义中使用函数.但我不知道这是不是很好的做法:
class Image(model.Models):
image = ....
def getImage(self):
if not self.image:
# depending on your template
return default_path or default_image_object
Run Code Online (Sandbox Code Playgroud)
然后在模板中
<img src="img.getImage" />
Run Code Online (Sandbox Code Playgroud)
这为您的未来提供了极大的灵活性......
我正在使用sorl进行缩略图生成并获得巨大成功
小智 6
在您的图像字段中
field = models.ImageField(upload_to='xyz',default='default.jpg')
Run Code Online (Sandbox Code Playgroud)
注意:路径应该在 MEDIA_ROOT 内。
你可以在你的模板中尝试这个:
{% ifequal object.image None %}
<img src="DEFAULT_IMAGE" />
{% else %}
display image
{% endifequal %}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30710 次 |
最近记录: |