gpt4 book ai didi

javascript - 动态加载页面时 Django url 标记不起作用

转载 作者:行者123 更新时间:2023-12-04 00:54:55 27 4
gpt4 key购买 nike

这是我第一次发问题,所以我会尽可能简洁。

我正在尝试在登录时动态填充页面的 HTML。对于前端应用程序,我使用 Django + HTML 和 CSS。我想向现有的“ul”动态添加“li”项。

之前的代码,当页面静态加载时是:

<ul id="marketplace-list">
<li id="shoes-marketplace-dropdown" class="dropdown dropdown-toggle">
<a href="{% url 'shoes_marketplace' %}">Shoes</a>
<ul class="dropdown-menu" role="menu">
<li><a href="{% url 'shoes_men' %}">Men</a></li>
<li><a href="{% url 'shoes_women' %}">Women</a></li>
</ul>
</li>
</ul>

单击“Men”href 时,我的浏览器将重定向到以下 URL:http://localhost:9000/marketplaces/shoes/men/

现在我创建了一个 js 变量,其中包含 ID 为“shoes-marketplace-dropdown”的“li”标签。我计划在 $(document).ready( function {...}) 中的上述标签中动态添加和创建 ID 为“marketplace-list dynamically”的“ul”标签。

我的做法是:

var shoes_market = " <li id=\"shoes-marketplace-dropdown\" class=\"dropdown dropdown-toggle\">" +
" <a href=\"{% url \'shoes_marketplace\' %}\">Shoes</a>" +
" <ul class=\"dropdown-menu\" role=\"menu\">" +
" <li><a href=\"{% url \'shoes_men\' %}\">Men</a></li>" +
" <li><a href=\"{% url \'shoes_women\' %}\">Women</a></li>" +
" </ul>" +
"</li>";

在 $(document).ready() 函数中我有:

$("#marketplace-list").prepend(shoes_market)

HTML 页面构建正确,但是当我单击“Men”链接时,在浏览器中会看到以下 URL:

http://localhost:9000/%7B%%20url%20 'shoes_men'%20%%7D

url在urls.py中定义如下"<​​/p>

url(r'^marketplaces/shoes/men/$', views.shoes_men, name='shoes_men')

我的猜测是,不知何故,包含 url 的 HTML 代码(作为字符串放置在 javascript 中)不会通过 urls.py 中定义的 Django 解析为其关联值。你能帮我么?我不知道如何解决这个问题。

提前致谢!

最佳答案

出现此问题是因为您的 URL 标记是在 JS 而不是 HTML 中,并且 Django 模板引擎不适用于 JS 静态文件。如果你真的想继续使用 JS 实现,那么在 HTML 模板中创建带有变量的脚本标签

<script>
var men_shoe_link = {% url 'shoes_men' %}
</script>

然后你可以在 JS 中使用这个变量,因为你的代码在 $(document).ready() 函数中,首先你的 var 将被创建,然后 JS 文件将被处理。那么现在在 JS 字符串中你可以拥有

"<a href='${men_shoe_link}'>Shoes</a>"

关于javascript - 动态加载页面时 Django url 标记不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59752034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com