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')),
)
personalasier.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: []
ありがとう!!