gru*_*czy 4 django imagefield media-url
应该怎样MEDIA_ROOT和MEDIA_URL被在上下文中正确设置ImageField?我应该如何设置upload_toImageField的参数?评论MEDIA_ROOT和MEDIA_URL稀缺,所以我想知道,他们使用了什么以及如何正确设置它们.
MEDIA_ROOT是您希望文件到达的目录,MEDIA_URL需要是指向同一目录路径的URL.
upload_to选项可以是该目录中的目录,因此upload_to ="foo"将进入MEDIA_ROOT的"foo"子目录.
或者它可以是一个获取图像字段实例和建议的基本文件名的函数,并返回您想要使用的真实文件名.所以
upload_to=get_photo_path
Run Code Online (Sandbox Code Playgroud)
和:
def get_photo_path(instance, filename):
if not filename: return ""
exts = re.search('[.]([^.]*)$',filename)
if exts is None:
ext = ''
else:
ext = '.'+exts.group(1)
return "newname%s" % (ext)
Run Code Online (Sandbox Code Playgroud)
将重命名该文件但保留扩展名.请注意,"newname."仍然在MEDIA_ROOT目录中 - 您不需要返回"/ usr/whatever/something/foo/newname. ".它已经为你解决了MEDIA_ROOT问题.
更新:
仅供参考,很高兴知道
<modelobject>.<imagefieldname>.field.generate_filename( <modelobject>, proposed_name )
Run Code Online (Sandbox Code Playgroud)
这是如何从模型外部生成图像将进入的部分路径.您需要手动将MEDIA_ROOT前置到此处以使其成为绝对路径.
| 归档时间: |
|
| 查看次数: |
3827 次 |
| 最近记录: |