【问题标题】:Django urldecode in template file模板文件中的 Django urldecode
【发布时间】:2011-07-10 21:16:23
【问题描述】:

Django 模板文件中的urldecode 有什么办法吗?

urlencodeescape正好相反

我想将app%20llc 转换为app llc

【问题讨论】:

  • 您确定要在模板中执行此操作吗?您的视图不应该从一开始就为模板提供完美的数据吗?
  • 当然!因为我想在 for 循环中执行此操作以在模板页面中打印表格行

标签: python django django-templates


【解决方案1】:

你必须写这样的东西而不是之前的答案,否则你会得到最大的递归深度

from urllib import unquote
from django.template.defaultfilters import register
from urllib.parse import unquote #python3

@register.filter
def unquote_new(value):
    return unquote(value)

{{ 原始|unquote_new }}

【讨论】:

    【解决方案2】:

    你可以在urllib.unquote 周围创建一个简单的custom filter

    例如:

    from django.template.defaultfilters import stringfilter
    from urllib import unquote
    
    @stringfilter
    def unquote_raw(value):
        return unquote(value)
    

    现在您可以在您的 django 模板文件中使用它:

    {{ raw|unquote_raw }}
    

    【讨论】:

    • 我想做的是模板文件不在视图中
    • 你想让我做这样的事情docs.djangoproject.com/en/dev/howto/custom-template-tags 吗?
    • 谢谢,但这个取消引用并没有将& 转义为&
    • 来自 urllib.unquote() 文档:“用等效的单字符替换 %xx 转义符。”
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2016-08-02
    • 2013-03-02
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    相关资源
    最近更新 更多