【发布时间】:2011-07-16 03:48:00
【问题描述】:
我在使用 mimetype="text/plain" 的 django 模板时遇到了一些问题。
首先,url 的 s3 部分以 :80 结尾,然后实际的图像 url 以 '%2f' 代替每个斜杠。
object.image.url
我已尝试使用安全标签和其他自定义标签来替换“%2f”,但它不起作用
#what I have
http://blahblah.s3.amazonaws.com:80/navigation%2Fprimary%2Fimage.jpg
#what I want
http://blahblah.s3.amazonaws.com/navigation/primary/image.jpg
我尝试过的自定义标签是:
import re
from django import template
register = template.Library()
def reslash (value):
return value.replace('%2f', '/')
register.filter('reslash', reslash)
这样使用:
{{ object.image.url|reslash }}
但它不起作用。谢谢
【问题讨论】:
-
这个网址是从哪里来的?你是如何在模板中输出的?
-
{{ object.image.url|safe }} 应该不加修改地输出 URL - 请参阅 docs.djangoproject.com/en/dev/ref/templates/builtins/…
-
@Daniel Roseman 网址来自导航对象循环,每个导航对象都有一个图像字段,保存时上传到 s3。因此,我可以轻松地循环并输出标题,但由于某些原因,使用 |safe 它仍然可以执行相同的操作。可能是因为我正在输出到 text/css 或 text/plan。
-
你试过unquote吗?