Полный URL Django без разрыва - PullRequest
27 голосов
/ 01 июля 2011

У меня есть запись в моем urls.py, которая действует как универсальное средство, которое загружает простое представление, если оно находит соответствующую страницу в базе данных. Проблема с этим подходом состоит в том, что тогда решатель URL-адресов никогда не потерпит неудачу, а это означает, что функциональность APPEND_SLASH не сработает - что мне нужно.

Я бы предпочел не прибегать к добавлению префикса к URL-адресам статической страницы, чтобы он не стал универсальным. Я знаю о плоских страницах, которые используют хук 404, а не запись в urls.py, и я надеялся избежать его использования, но я думаю, что эта проблема может быть именно той причиной, по которой его можно использовать.

Как-нибудь обойти эту проблему или я должен просто сдаться и использовать планшеты?

Ответы [ 2 ]

60 голосов
/ 18 апреля 2012

Убедитесь, что ваш шаблон URL-адреса для всех цепочек имеет косую черту в конце и что шаблон является последним в вашем URLconf.Если шаблон перехвата не заканчивается косой чертой, то он будет соответствовать паразитным URL-адресам, прежде чем промежуточное ПО попытается добавить косую черту.

Например, используйте r'^.*/$' вместо r'^.*' в качестве последнего шаблона.

Чтобы сделать то же самое, но передать URL-адрес представлению в качестве именованного аргумента, используйте r'^(?P<url>.*)/$'.

0 голосов
/ 01 июля 2011

Оператор , если он находит подходящую статическую страницу в базе данных , кажется, что ваши статические страницы не совсем статичны, поэтому вы либо пропускаете свои ссылки через urls.py (как вы это делаете сейчас), либо Вы извлекаете эти страницы из БД, помещаете их в каталог и настраиваете этот каталог как один для обслуживания статических файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...