Django如何处理变量名中的#

时间:2010-05-30 15:40:51

标签: python django-templates

我在python中有一个字典,它被指定为模板变量。其中一个键名为“#text”,但是当我尝试使用{{artist.image.3。“#text”}}访问它时,我收到错误

  File "/home/jack/Desktop/test/appengine/lib/django/django/template/__init__.py", line 558, in __init__
    raise TemplateSyntaxError, "Could not parse the remainder: %s" % token[upto:]
TemplateSyntaxError: Could not parse the remainder: "#text"

那么如何在模板中使用它呢?我试过在它周围加上引号但无济于事。如果可能的话,我不想修改字典,但如果它很容易做到那么我猜它没关系。

由于

1 个答案:

答案 0 :(得分:0)

Django除了这些变量是正确的名称,你有两个选择

  1. 如果可能的话,只需将#text更改为文本或类似内容
  2. 否则写一个模板过滤器,除了键名和返回值
  3. e.g。

    @register.filter
    def get_key(d, key):
        return d[key]
    

    用法:

     {{ my_dict|get_key:'#text' }}
    

    阅读http://docs.djangoproject.com/en/dev/howto/custom-template-tags/,了解如何编写和使用模板过滤器和代码。