Django: при передаче строки с -, что-нибудь позади - будет отброшено - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь передать строковый параметр в django, но когда я пытаюсь это сделать, все, что позади - отбрасывается.

Я использую Django 2.1.7 на Python3.Моя ОС - Mac OS Mojave 10.14.

Я получаю доступ к http://127.0.0.1:8000/ruleset/a096abd9-3855-4a91-9336-1d7e66aa5323

def ruleSet(request,id_):
    return HttpResponse(id_)
urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'ruleset/(\w+)', view.ruleSet)
]

Я, кроме как получить a096abd9-3855-4a91-9336-1d7e66aa5323

Я получил a096abd9 вместо

1 Ответ

0 голосов
/ 01 мая 2019

это происходит потому, что "\ w" не соответствует "-" char.

Вам нужно написать регулярное выражение, которое может соответствовать uuid.

Попробуйте ниже

urlpatterns = [
    path('admin/', admin.site.urls),
    path('ruleset/<str:id_>', view.ruleSet)
]

Проверьте ниже документ для информации о шаблоне в URL-адресах Django https://www.webforefront.com/django/regexpdjangourls.html

...