Я использую версию Django 2.2.5. Ниже мой urls.py
from django.urls import path, include
from . import views
urlpatterns = [
path('manifest/', views.home),
path('manifest/<str:some_id>/', views.manifest),
]
Он отлично работает, когда some_id не содержит косой черты (/). Например, http://127.0.0.1:8000/manifest/name:19.2.4:develop:1/
В следующей функции манифеста из views.py я могу получить some_id
def manifest(request, some_id):
print(some_id)
##prints below:
##[21/Oct/2019 19:36:55] "GET /manifest/name:19.2.4:develop:1 HTTP/1.1" 301 0
##name:19.2.4:develop:1
Однако, когда some_id содержит косую черту, я нене получить весь идентификатор. Например, из приведенного выше URL, если бы я заменил «развернуть» на «выпуск / 19.2.4» http://127.0.0.1:8000/manifest/name:19.2.4:release/19.2.4:1/
"GET /manifest/name:19.2.4:release/19.2.4:1/ HTTP/1.1" 404 3080
Это связано с тем, что в качестве разделителя используется косая черта. Есть ли способ игнорировать эту косую черту внутри параметра some_id? Ожидается получить name: 19.2.4: release / 19.2.4: 1 как some_id в views.py
Примечание: Формат действительногоsome_id состоит из 4 частей, разделенных ":". Например: name: version: branch: num , где только раздел ветви может иметь одну или несколько косых черт (/).