哪个模板标签包含使用django storage[dropbox]存储的图像
我尝试使用Django构建我的第一个应用程序,并使用Django存储在dropbox上存储媒体:哪个模板标签包含使用django storage[dropbox]存储的图像,django,django-storage,Django,Django Storage,我尝试使用Django构建我的第一个应用程序,并使用Django存储在dropbox上存储媒体: DEFAULT_FILE_STORAGE = 'storages.backends.dropbox.DropBoxStorage' DROPBOX_OAUTH2_TOKEN = ---- mytoken ---- DROPBOX_ROOT_PATH = 'media' 直接使用模型上传和显示图像效果很好(例如,html模板中的{{{object.photo.url}}) 但是,如果没有对象,如何在
DEFAULT_FILE_STORAGE = 'storages.backends.dropbox.DropBoxStorage'
DROPBOX_OAUTH2_TOKEN = ---- mytoken ----
DROPBOX_ROOT_PATH = 'media'
直接使用模型上传和显示图像效果很好(例如,html模板中的{{{object.photo.url}}
)
但是,如果没有对象,如何在模板中创建指向图像的链接
差不多
<img src="{{media_url}}myimage.jpg">
无法工作,因为它链接到本地主机(在我的本地服务器上)。是否需要重新定义媒体url,或者是否需要使用其他标记 我不确定在从dropbox访问图像时是否存在要使用的任何标记。我将使用Django中的自定义
过滤器解决此问题,因为这是区分local
和remote
的情况,并形成正确的URL
以传递到src
属性
您可以从中了解自定义过滤器的工作原理。本质上,您需要一个自定义函数,该函数在远程/本地URL
前面加上前缀
使用这样的函数,例如
@register.filter
@stringfilter
def prepend(str):
url = "" #defien your remote url here
return "{}{}".format(url, str)
然后从模板调用此函数,该函数将为您提供正确的url(如您所定义)。我认为相对路径应该可以工作……我尝试使用dropbox链接,从开始。我想在某个地方需要调用存储模块。这是为模型对象自动完成的。您必须将媒体url发送到模板,或者您可以拥有一个视图和路径('media/',name='media\u server')
,并在模板中使用此模板标记{%url'media\u server'%}
谢谢!我使用了一个过滤器,里面有以下行:return storage.url(str)