【问题标题】:how to use a django variable in an <a> tag's href?如何在 <a> 标签的 href 中使用 django 变量?
【发布时间】:2022-02-09 22:43:30
【问题描述】:

我想创建一个list 条目,其中每个条目都链接到其页面,如下所示:wiki/entry-title。我正在使用for 循环将&lt;li&gt;s 添加到HTML。这是代码:

<ul>
  {% for entry in entries %}
    <li><a href="">{{ entry }}</a></li>
  {% endfor %}
</ul>

网址模式:

path('wiki/<str:title>', views.entry, name='entry')

我应该输入什么href 以将&lt;li&gt; 链接到wiki/entry

【问题讨论】:

    标签: python html django


    【解决方案1】:

    您可以将 url 中的值设置为

    <ul>
        {% for entry in entries %}
            <a href="/wiki/{{entry.value}}"><li>{{ entry }}</li></a>
      {% endfor %}
    </ul>
    

    最好使用{% url %} [Django-doc]模板标签作为

    <ul>
        {% for entry in entries %}
            <a href="{% url 'your-url-name' entry.value %}"><li>{{ entry }}</li></a>
      {% endfor %}
    </ul>
    

    注意:value 相应地更改为您的值。例如{{entry.value}}{{entry.title}}{{entry.id}}

    【讨论】:

      【解决方案2】:

      djangodocs中有一个明确的例子

      <ul>
        {% for yearvar in year_list %}
          <li><a href="{% url 'news-year-archive' yearvar %}">{{ yearvar }} Archive</a></li>
        {% endfor %}
      </ul>
      

      【讨论】:

        【解决方案3】:

        在 django 中,模板解析器总是先处理 django 代码,然后处理 html/javascript。因此,您可以将 django 变量插入到锚标记中,就像在模板中的任何位置插入它一样,解析器将在尝试呈现 html 之前替换它。如果是 django url,您可以使用上一个答案中引用的 {% %} 格式,如果它是可能存储在对象上的 url,您可以使用 {{ }}(如 {{ entry.wiki_url }})。您还可以对某些 url 使用文本,对部分使用变量。因此,如果您有一个 wiki 站点的基本 url,例如,https://mywiki.com,您将编写 href 如下:

        <ul>
          {% for entry in entries %}
            <a href="https://mywiki.com/{{entry.title}}"><li>{{ entry.title }}</li></a>
          {% endfor %}
        </ul>
        

        【讨论】:

          猜你喜欢
          • 2019-04-11
          • 2011-10-30
          • 2018-05-20
          • 1970-01-01
          • 2020-12-28
          • 1970-01-01
          • 2017-11-30
          • 2016-01-22
          • 1970-01-01
          相关资源
          最近更新 更多