python 如何在标签href中使用django变量< a>?

zc0qhyus  于 2023-01-12  发布在  Python
关注(0)|答案(4)|浏览(130)

我想创建一个list的条目,其中每个条目都链接到其页面,如下所示:wiki/entry-title。我使用for循环将<li>添加到HTML中。代码如下:

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

网址模式:

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

要将<li>链接到wiki/entry,我应该在href中键入什么?

ewm0tg9j

ewm0tg9j1#

您可以将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}}

bjp0bcyl

bjp0bcyl2#

在django文档中有一个明显的例子

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

pbgvytdp3#

在django中,模板解析器总是先处理django代码,然后处理html/javascript.所以你可以把一个django变量插入到锚标签中,就像你把它插入到模板的任何地方一样,解析器会在试图呈现html之前替换它.如果它是一个django url,你可以使用前面答案中提到的{% %},如果它是一个可能存储在对象上的url,你可以只使用{{ }}(如{{ entry.wiki_url }})。你也可以使用文本来表示url的一部分,使用变量来表示part。因此,如果你有一个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>
2o7dmzc5

2o7dmzc54#

我发现唯一对我有效的解决方案是这种格式

<a href="{% url 'url_path_name' x %}"> {{ x }} </a>
  • x:这是我们希望在href属性中实现的变量
  • 'url_path_name':这是我们在www.example.com中给出的url的名称urls.py,请参见:
path("wiki/<str:name>" , views.entry, name="url_path_name")

因此,此定义的url应如下所示:

wiki/ ? 
href="{% url 'url_path_name' x %}"

相关问题