您好非常感谢您阅读我的问题帖子。
我在urlpatterns中有不同的url路径模式, 但Django URL调度程序(重新路径)调用相同的视图(views.selected_verb) 对于正则表达式表示的不同URL。
这些网址调用相同的视图(views.selected_verb) http://127.0.0.1:8000/arabic/verbs/%D9%83%D8%A7%D9%86/ http://127.0.0.1:8000/arabic/verbs/%D9%83%D8%A7%D9%86/quiz/
很想知道如何修复它(调用不同的视图)
这是urlpatterns
urlpatterns = [
path('', views.index, name='index'),
path('verbs', views.verbs, name='verbs'),
re_path(r'^verbs/(?P<verb>.+)/$', views.selected_verb, name='selected_verb'),
re_path(r'^verbs/(?P<verb>.+)/quiz/$', views.quiz, name='quiz'),
]
再次感谢你!
答案 0 :(得分:0)
我认为问题是%D9%83%D8%A7%D9%86/quiz/
会与任何匹配,其中包括[A-Z0-9%]+
。也许你可以试着告诉它更明确的东西,比如q
。当测验中出现urlpatterns = [
path('', views.index, name='index'),
path('verbs', views.verbs, name='verbs'),
re_path(r'^verbs/(?P<verb>[A-Z0-9%]+)/quiz/$', views.quiz, name='quiz'),
re_path(r'^verbs/(?P<verb>[A-Z0-9%]+)/$', views.selected_verb, name='selected_verb'),
]
字符时,它将失败匹配,然后转到下一个应该是您想要的url模式。
所以我认为它应该都是这样的:
{{1}}