我想用一个包含正斜杠的参数来调用Django URL。例如,我想用mysite.com/test/调用'test1/test2'。 (例如,天真地,该网址为mysite.com/test/test1/test2)
urls.py:

urlpatterns = [
    path('test/<test_arg>/', views.test, name='test'),
]

访问以下任一失败:
  • mysite.com/test/test1/test2
  • mysite.com/test/test1%2Ftest2(%2F是正斜杠的标准URL编码)

  • 出现以下错误:

    错误:
    Using the URLconf defined in test.urls, Django tried these URL patterns, in this order:
    
        reader/ test/<test_arg>/
        admin/
    
    The current path, test/test1/test2/, didn't match any of these.
    

    我希望使用1中的路径会失败,但是令我惊讶的是2中的路径会失败。

    解决这个问题的正确方法是什么?

    使用Django 2.0.2

    最佳答案

    默认的path converter <test_arg>(与<str:test_arg>等效)与正斜杠不匹配。

    使用<path:test_arg>匹配正斜杠。

    关于python - 如何在Django2网址中以斜线传递参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49586991/

    10-12 20:33