Django URL Dispatcher
Я работал над новым сайтом Django, и у меня возникли проблемы с диспетчером URL.
В основном мне нужна помощь, чтобы следующие URL работали.
/ Сайт / ааа-00
/ Сайт / ааа-00-00
Я посмотрел на диспетчер URL на django docs, и теперь я в замешательстве, ха-ха.
url (r '^ / site / (? P [- \ w] +) / $', 'rollout.views.update'),
Ура Xc0m
1 ответ
Ваше регулярное выражение не собирается делать работу. Я ожидаю, что это будет выглядеть так:
^site/(?P<path>[-\w]+)/$
делать то, что вы хотите. Два основных различия: шаблоны URL не должны совпадать с линией косой черты, т.е. слэш удаляется (или, точнее, не является частью компонента пути URL, но это становится педантичным); а также ?P
в выражениях следует взять имя для группы (которая преобразуется в параметр для вашей функции просмотра).
Еще одна вещь, о которой вы можете не знать: у вас есть трейлинг /
в конце строки URLconf, но не в URL, которые вы пытаетесь сопоставить. Обратите внимание, что по умолчанию Django (с CommonMiddleware
работает) будет автоматически перенаправлять, чтобы включить трейлинг /
если путь уже не совпадает с чем-то в URLconf; это можно контролировать с помощью APPEND_SLASH
Вариант конфигурации. Это должно "просто работать" в вашем случае, хотя это приводит к перенаправлению, поэтому вы не должны создавать URL-адреса без завершающей косой черты (или делать косую черту необязательной в URLconf).