将命名URL的值分配给Django模板中的变量

将命名URL的值分配给Django模板中的变量,django,Django,在Django模板中,我需要将names url的值分配到with块中的变量中,以便在多个位置使用它 我需要实现这样的目标: {% for tag in post.tags.all %} {% with tagabs={%url showtag tag%} %} <li><a href="{{tagabs}}">#{{tag}}</a></li> {% endwith %} {% endfor %} {%for

在Django模板中,我需要将names url的值分配到with块中的变量中,以便在多个位置使用它

我需要实现这样的目标:

{% for tag in post.tags.all %}
    {% with tagabs={%url showtag tag%} %}
          <li><a href="{{tagabs}}">#{{tag}}</a></li>
    {% endwith %}
{% endfor %}
{%for post.tags.all%中的标记]
{%with TAGAB={%url showtag tag%}%}
  • {%endwith%} {%endfor%}
    但很明显,这不起作用,最终会导致解析错误。上面的例子是一个简单的场景,我可以用{%url showtag tag%}代替{{tagabs}}并删除with块。但是在我的场景中,我需要在几个地方和if语句中使用tagabs值进行比较


    感谢您的帮助。

    我认为您必须创建自己的来管理此问题,或者在视图中创建必要的数据并将其传递给模板

    具体取决于您正试图做什么,也许另一个模板并发送您定义的变量可以做到这一点,但我对此表示怀疑


    Djangos模板系统背后的思想是使其成为模板,这样模板中就没有太多的逻辑。因此,现在又回到了准备视图中输出所需的数据或制作模板标记的阶段。

    如果功能位于core中,为什么要创建新的模板标记/过滤器

    请看以下示例:

    {%url'path.to.view'arg arg2作为\u url%}
    

    {%url'path.to.view'作为\u url%}
    {%if_url%}
    {%endif%}
    
    请您提供更多关于更大问题的信息好吗?非常好的建议,绝对比新标签优雅得多。谢谢
    作为
    的语句不会被呈现(它是如何工作的)。稍后你可以使用这个变量,因为我理解这个问题的方式与我所知道的任何核心行为都不匹配。在我看来,有人试图在视图中进行复杂的操作,而不仅仅是简单地命名URL。
    {% url 'path.to.view' arg arg2 as the_url %}
    
    <a href="{{ the_url }}">I'm linking to {{ the_url }}</a>
    
    {% url 'path.to.view' as the_url %}
    {% if the_url %}
      <a href="{{ the_url }}">Link to optional stuff</a>
    {% endif %}