В настоящее время то, что вам требуется, невозможно.
Если обойтись без кода (it
, en
или любой другой) в URL, путем изменения регистрации шаблона URL из:
urlpatterns = i18n_patterns('',
url(r'^', include('cms.urls')),
)
в
urlpatterns = patterns('',
url(r'^', include('cms.urls')),
)
вы также потерять доступ к языковым версиям контента.
Выполнение только для одноязычный сайт.
См. django CMS internationalisation documentation для получения дополнительной информации.
Это правда, что CMS также принимает к сведению сеанс и файл cookie, но на самом деле перенаправляет на правильный код языка - потеряйте это, и вы никогда не перенаправитесь на нужный язык.
К сожалению, вам нужно будет выбрать одноязычный сайт или принять URL-адреса, содержащие языковые пули. Вы можете, конечно, поделиться URL-адреса, которые не имеют имеют язык slug, и в этом случае система будет fall back through various clues, чтобы найти нужный язык, - и тогда, разумеется, перенаправится на URL-адрес, содержащий код.
Что касается основополагающего принципа для системы управления контентом, что общедоступный URL-адрес такого рода должен надежно указывать на один и тот же контент, а не на потенциально неожиданный контент.
Возможно, есть случай, позволяющий различать поведение, но на данный момент это то, как обстоят дела.
Является ли это функцией django или функцией django cms? Я понимаю, что функция 'i18n_patterns()' как часть django создает код языка в URL-адресе. – Fabian
django CMS использует среду языков Django и, в частности, префикс языка для загрузки правильного языка при загрузке страницы; таким образом, это функция CMS django, использующая базовую функцию Django – yakky