【发布时间】:2020-05-02 06:09:41
【问题描述】:
这是我第一次发布问题,所以我会尽可能简洁。
我正在尝试在登录时动态填充页面的 HTML。对于前端应用程序,我使用 Django + HTML 和 CSS。我想动态地将“li”项添加到现有的“ul”中。
之前的代码,页面静态加载时是:
<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>
点击“男士”href 时,我的浏览器会重定向到以下网址:http://localhost:9000/marketplaces/shoes/men/
现在我创建了一个带有 id 为“shoes-marketplace-dropdown”的“li”标签的 js 变量。
我计划在$(document).ready( function {...}) 的上述标签中动态添加并创建 id 为“marketplace-list dynamic”的“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中定义如下"
url(r'^marketplaces/shoes/men/$', views.shoes_men, name='shoes_men')
我的猜测是,不知何故,包含 url 的 HTML 代码作为字符串放置在 javascript 中,并没有通过 urls.py 中定义的 Django 解析为它的关联值。你能帮我么?我不知道如何解决这个问题。
提前谢谢你!
【问题讨论】:
-
你是对的,只有 HTML 文件的内容由 Django 模板引擎处理,而不是任何链接的 JS(或 CSS)文件。为此,您需要将 JS 直接放在 HTML 文件中,在
<script>标记内 -
非常感谢罗宾,您的回答真的很有帮助。祝你有美好的一天!
标签: javascript django url tags