2011-03-15 58 views
4

我有一个MIME类型=“text/plain的”与Django模板的几个问题。在端部80,然后将实际的图像URL与“%2F”在替换每个斜线的渲染:Django的增加%2F替代/在模板图像场

首先URL的S3部分与渲染。

​​

我已经试过安全和其他自定义变量来替换“%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 }} 

但它不起作用。由于

+0

哪里是这个网址是从哪里来的?你如何在模板中输出它? – 2011-03-15 22:18:54

+1

{{object.image.url |安全}}应该输出无需修改网址 - 见http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#safe – 2011-03-15 23:00:13

+0

@Daniel罗斯曼该URL是从浏览对象,其每一个有一个图像字段,其上传至S3上保存的一个循环到来。因此,我可以轻松地循环播放标题,但出于某种原因,安全性仍然保持不变。这可能是因为我输出到文本/ CSS或文本/计划。 – Designer023 2011-03-16 09:39:41

回答

0

Django的自动HTML转义模板中的所有变量。为了插入变量的值,而不逃避,你应该使用safe过滤器来告诉Django的价值并不需要进行自动转义像这样:

{{ object.image.url|safe }}