Как удалить идентификатор языка из URL-адресов django-cms 2.4?
я следовал учебник создать новый сайт Django-CMS (2.4). Я использую только один язык (английский).
существует автоматическое перенаправление для включения идентификатора языка "/ en / " в URL-адреса моего сайта. Как его удалить?
спасибо.
4 ответов
заменить этот шаблон регистрации:
urlpatterns = i18n_patterns('',
 url(r'^admin/', include(admin.site.urls)),
 url(r'^', include('cms.urls')),
)
С этого:
from django.conf.urls import patterns
urlpatterns = patterns('',
  url(r'^admin/', include(admin.site.urls)),
  url(r'^', include('cms.urls')),
)
учебник вы указали в использует i18n_patterns метод, который делает именно это: добавляет код языка для URL-адреса. 
также обратите внимание, что вы можете безопасно удалить ' django.промежуточное программное обеспечение.место действия.LocaleMiddleware и КМВ.промежуточное программное обеспечение.язык.LanguageCookieMiddleware " из вашего MIDDLEWARE_CLASSES, если вы не будете использовать несколько языков.
@ppetrid все еще правильна. Однако, начиная с Django 1.6 patterns больше не доступен. Измените существующий код следующим образом:
from django.conf.urls import patterns
urlpatterns = (
  url(r'^admin/', include(admin.site.urls)),
  url(r'^', include('cms.urls')),
)
вы также получите предупреждение, если вы оставите '', в модели тоже.
в django версии 1.8.18 вам просто нужно поставить False при этой переменной в settings.py
USE_I18N = False
USE_L10N = False
Если вы хотите сохранить один язык в URL, например, потому что у вас есть обратные ссылки в интернете с кодом языка, вы можете просто вынуть другой язык в settings.py
LANGUAGES = (        
    #('en', gettext('en')),
    ('de', gettext('de')),
)
CMS_LANGUAGES = {        
    'default': {
        'public': True,
        'hide_untranslated': False,
        'redirect_on_fallback': True,
    },
    1: [            
        {
            'public': True,
            'code': 'de',
            'hide_untranslated': False,
            'name': gettext('de'),
            'redirect_on_fallback': True,
        },
        # {
        #     'public': True,
        #     'code': 'en',
        #     'hide_untranslated': False,
        #     'name': gettext('en'),
        #     'fallbacks': ['de'],
        #     'redirect_on_fallback': True,
        # },
    ],
}
таким образом, URL-адрес все еще показывает www.example.com/de/foo.html. В приведенном выше примере это /de/ будет потеряно, что сделает все ваши URL-адреса в интернете бессмысленными. 
таким образом, с точки зрения SEO, это может быть не лучший вариант, если вы уже создали ссылки с кодом языка в этом.
