Django 在图像字段的模板中添加 %2f 代替 /
Posted
技术标签:
【中文标题】Django 在图像字段的模板中添加 %2f 代替 /【英文标题】:Django adds %2f in place of the / in the template for an image field 【发布时间】: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吗? 【参考方案1】:Django 自动 html 转义模板中的所有变量。为了在不转义的情况下插入变量的值,您应该使用safe
过滤器来告诉 django 该值不需要像这样自动转义:
object.image.url|safe
【讨论】:
以上是关于Django 在图像字段的模板中添加 %2f 代替 /的主要内容,如果未能解决你的问题,请参考以下文章
Django cloudinary 图像如何在模板 % % 标签中添加 onClick 事件?
如何将引导类添加到模板中的 Django CreateView 表单字段?