Django URL标签无法与JS文件一起使用,这是一个奇怪的错误



这里是业余爱好者。似乎不知道如何将{% url %}静态模板与动态javascript结合使用。

例如,我正在为日历创建一个日期列表,单击该列表时,每天都应该根据日期从数据库中提取数据。

这一天是在一个循环中动态创建的,其中为URL设置了href属性。

JS代码中的<a href>当前用于设置URL:

aLink.setAttribute('href', currentYear + '-' + (currentMonth + 1) + '-' +dayCounter)

这个方法的问题是-快速查看我的URLS.py

urlpatterns = [
path('<int:tutor_id>', views.tutorHomeOverviewPage, name='tutorHomeOverviewPage'), #homepage for when tutor/customer signs in
path('<int:tutor_id>/<slug:selected_date>', views.tutorSelectedDay, name='tutorSelectedDay')

]

如果我从一个匹配路径1的页面开始,就像这样:

http://127.0.0.1:8000/tutorhomepage/7`

列表项的代码看起来是这样的,并且没有指向匹配的路径,因为它从URL:中删除了/7

<a href="2022-10-17" id="day17">17</a>

路径:

http://127.0.0.1:8000/tutorhomepage/2022-10-14

当我点击它时,给了我一个明显的错误:

Using the URLconf defined in sass_language_tutor_app.urls, Django tried these URL patterns, in this order:
tutorhomepage/ <int:tutor_id> [name='tutorHomeOverviewPage']
tutorhomepage/ <int:tutor_id>/<slug:selected_date> [name='tutorSelectedDay']
admin/
The current path, tutorhomepage/2022-10-7, didn’t match any of these.

现在,如果我手动输入URL栏7/,在它工作的日期之前,点击与第二个路径匹配,并且不会去掉7/

不知道为什么会发生这个问题,也不知道如何解决它。

我想使用{%url模板%},当我在html文件中创建静态LI时,它可以工作,如下所示:

<a href="{% url 'tutorhomepage:tutorSelectedDay' tutor_id='7' selected_date='2022-10-16'%}">Date check test - click here</a>

问题是,当我在JS文件中尝试这样做时,它会添加%符号和&符号,并使URL变得与众不同。不匹配路径。

你知道在这种情况下发生了什么吗?可能的解决方案是什么?

任何帮助都将不胜感激,谢谢!

在你的url<slug:selected_date>中,你告诉Django url应该包含一个Slug,而日期不是Slug,你将它作为字符串传递,所以你需要这样做:

urlpatterns = [
path('<int:tutor_id>', views.tutorHomeOverviewPage, name='tutorHomeOverviewPage'), #homepage for when tutor/customer signs in
path('<int:tutor_id>/<str:selected_date>', views.tutorSelectedDay, name='tutorSelectedDay')
]

相关内容

最新更新