1
我想在URL模式中添加語言前綴,就像django文檔主頁一樣。在此之後example我urls.py
看起來是這樣的:名稱'urlpatterns'在翻譯時未定義(+ = i18n_patterns)
from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from myapp import views
from myapp.views import MyFirstView, MySecondView
myapp_patterns = [
url(r'^$', views.CategoryView, name='index'),
url(r'^(?P<name>[a-zA-Z0-9_]+)/$', MyFirstView.as_view(), name='detail'),
url(r'^(?P<name>[a-zA-Z0-9_]+)/mysecond_view/$', MySecondView, name='mysecond_view')
]
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^categories/', include(myapp_patterns)),
url(r'^', views.LandingView),
]
這工作,但現在當我添加+= i18n_patterns
urlpatterns += i18n_patterns [
url(r'^admin/', admin.site.urls),
url(r'^categories/', include(myapp_patterns)),
url(r'^', views.LandingView),
]
我得到的錯誤:NameError:名字 'URL模式' 沒有定義
我確實添加了LocalMiddleware
:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
以及本:
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
我不明白怎麼urlpatterns
所有的突然不再被定義。 我在這裏做錯了什麼?
你試過'i18n_patterns(..)'而不是'i18n_patterns [..]'嗎? – codekaizer
是的,我也試過,沒有改變任何東西 – Tom
'urlpatterns + = i18n_patterns'應該是'urlpatterns = i18n_patterns' – karthikr