如何在Django2中使用斜杠传递参数urls

时间:2018-03-31 11:01:44

标签: python django django-2.0

我想用包含正斜杠的参数调用Django URL。例如,我想与mysite.com/test/联系'test1/test2'。 (例如,天真地,网址将是mysite.com/test/test1/test2

urls.py

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

访问以下任一情况失败:

  1. mysite.com/test/test1/test2
  2. mysite.com/test/test1%2Ftest2(%2F是正斜杠的标准网址编码)
  3. 出现以下错误:

    错误:

    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

1 个答案:

答案 0 :(得分:1)

默认path converter <test_arg>(相当于<str:test_arg>)与正斜杠不匹配。

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