代码之家  ›  专栏  ›  技术社区  ›  pjbeardsley

将字符串文字用作django模板中模板标记的参数

  •  6
  • pjbeardsley  · 技术社区  · 15 年前

    我发现自己经常做的事情之一是将字符串文本作为参数传递给模板标记或函数;例如:

    {% url my-url 'my_param' %}
    

    不幸的是,Django模板引擎不允许您这样做。所以我发现自己在我的视图代码中做了很多事情:

    my_context_dict['MY_PARAM'] = 'my_param'
    

    然后在我的视图代码中:

    {% url my-url MY_PARAM %}
    

    或者创建一系列的URL映射,这是我个人努力避免的。

    是否可以在Django模板中使用字符串文字?或者可能是更优雅的解决方案?我在这里或文档中没有看到任何内容。

    3 回复  |  直到 10 年前
        1
  •  13
  •   S.Lott    15 年前

    这感觉不对,但是对的。

    <a href="{% url someting "param1" "param2" %}">text</a>
    

    嵌套的 "" 他们似乎不应该工作。是的。丹乔 {% %} 材料只是从HTML中提取出来,而不考虑周围的上下文。所以“复制的” " 这根本不是复制品。

        2
  •  12
  •   Ayman Hourieh    15 年前

    使用双引号而不是单引号:

    {% url my_view "my_param" %}
    
        3
  •  1
  •   Denilson Sá Maia    10 年前

    非常wierd-我有一个django项目,它使用单引号来传递字符串值,而且它的功能很好。

    <a href="{% url categories 'vendor' %}"</a>
    <a href="{% url categories 'crew' %}"</a>
    

    经过进一步调查,结果是 this has changed in django 1.5 . 现在它甚至需要在URL模式名周围加引号。