这里是业余爱好者。似乎不知道如何将{% 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')
]