Маршрутизация Django i18n не работает должным образом

У меня проблема с маршрутизацией Django i18n. Я хочу установить язык в URL, но не работает. Я создал urls.py в проекте, а в приложении еще один urls.py. Код выглядит следующим образом:

личный/urls.py

from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _

from personalasier import views

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'personal.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
)

urlpatterns += i18n_patterns(
    url(r'^cv/$',include('personalasier.urls')),
)

персональный asier.py

from django.conf.urls import patterns, url

from personalasier import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
)

Когда я обращаюсь к / или /cv, возвращается 404 и показывает мне:

Using the URLconf defined in personal.urls, Django tried these URL patterns, in this order:
   ^admin/
   ^es/
The current URL, , didn't match any of these.

И если я обращаюсь к /es/, /es/cv/ или /es/cv, выдает еще 404 с таким результатом:

Using the URLconf defined in personal.urls, Django tried these URL patterns, in this order:
     ^admin/
The current URL, es/, didn't match any of these.

Наконец, я попытался изменить URL-адрес, бросить и исключить:

>>>from django.core.urlresolvers import reverse
>>> from django.utils.translation import activate
>>> activate("es")
>>> reverse("index")
Traceback (most recent call last):
    file "<console>", line 1, in <module>
    File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 551, in reverse
        return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
    File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 468, in _reverse_with_prefix(lookup_view_s, args, kwargs, len(patterns), patterns))
NoReverseMatch: Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

Спасибо!!


person Asier    schedule 09.01.2015    source источник


Ответы (1)


Я так понимаю, нужно активировать язык? Прочтите это: https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#language-prefix-in-url-patterns. Вы пробовали из командной строки? Это работает?

person Magd Kudama    schedule 09.01.2015
comment
Я попробовал с оболочкой, я активировал язык, выполнил возврат, и Python дал мне исключение... - person Asier; 10.01.2015
comment
Только что попробовал с чистой установкой Django и у меня сработало. У вас все еще есть проблема? Вы используете Джанго 1.7? - person Magd Kudama; 11.01.2015