tho*_*mad 5 django django-models
在我的用户配置模式,我想有它返回一个函数或者用户ImageFileField
,如果用户还没有上传自己的对象或默认图像.
例如:
class UserProfile(models.Model):
pic = models.ImageField('Headshot',blank=True,
upload_to=get_path_and_filename)
def get_pic(self):
if self.pic:
return self.pic
else:
# return ImageFileField with a default value
Run Code Online (Sandbox Code Playgroud)
我想返回一个等价物,ImageFileField
因为我有使用此对象类型的过滤器(所以我不能简单地将它传递给它一个字符串)...我试着查看源代码,但我无法弄清楚如何自己动手吧.
是否有一种简单的方法来初始化一个新ImageFileField
对象,方法是将其传递给图像文件然后返回它?
PS:我曾考虑使用ImageField 的默认设置,但是,它似乎不太灵活,因为文件存储在模型创建中...如果我以后想要更改默认文件,我将不得不更新所有数据库具有旧文件的条目.
Smi*_*ris 11
这可能是一个错字,但你真正想要回归的是一个ImageFieldFile
.
在ImageField
使模型实例实际上AA的财产ImageFileDescriptor
.当您访问该属性时,它将返回一个ImageFieldFile
实例.
只要您不调用ImageFieldFile 的save()
or或delete()
方法,就可以合理地轻松实现:
from django.db.models.fields.files import ImageFieldFile, FileField
class UserProfile(models.Model):
# ...
def get_pic(self):
if self.pic:
return self.pic
return ImageFieldFile(instance=None, field=FileField(),
name='pictures/default.jpg')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4032 次 |
最近记录: |