2017-08-13 16 views
1

Django文档给出了在URL中增加语言的前缀下面的例子:如何在Django Cookiecutter中配置i18n_patterns生成的urls.py?

from django.conf.urls import include, url 
from django.conf.urls.i18n import i18n_patterns 

from about import views as about_views 
from news import views as news_views 
from sitemap.views import sitemap 

urlpatterns = [ 
    url(r'^sitemap\.xml$', sitemap, name='sitemap-xml'), 
] 

news_patterns = ([ 
    url(r'^$', news_views.index, name='index'), 
    url(r'^category/(?P<slug>[\w-]+)/$', news_views.category, name='category'), 
    url(r'^(?P<slug>[\w-]+)/$', news_views.details, name='detail'), 
], 'news') 

urlpatterns += i18n_patterns(
    url(r'^about/$', about_views.main, name='about'), 
    url(r'^news/', include(news_patterns, namespace='news')), 
) 

但通过Django的18.11产生的项目级urls.py文件如下:

urlpatterns = [ 
    url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'), 
    url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name='about'), 

    # Django Admin, use {% url 'admin:index' %} 
    url(settings.ADMIN_URL, admin.site.urls), 

    # User management 
    url(r'^users/', include('domainname.users.urls', namespace='users')), 
    url(r'^accounts/', include('allauth.urls')), 

    # Your stuff: custom urls includes go here 


] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

我应该在哪里在那里添加i18n_patterns?非常感谢!

回答

1

我做了以下,到目前为止,它的工作原理:

urlpatterns = [ 
    # Django Admin, use {% url 'admin:index' %} 
    url(settings.ADMIN_URL, admin.site.urls), 

    #Sitemap? 

] 


urlpatterns += i18n_patterns(
    #Site pages 
    url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'), 
    url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name='about'), 

    # User management 
    url(r'^users/', include('domainname.users.urls', namespace='users')), 
    url(r'^accounts/', include('allauth.urls')), 

    # Your stuff: custom urls includes go here 


    # Set it to False to remove 'en' prefix for English 
    prefix_default_language=True 
) 

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

,如果它在未来打破我会更新这个答案。请也指出在这方面的任何错误。谢谢!