다른 지원되는 언어에 대해 동일한보기를 사용하고 싶습니다. 예를 들어 기본 언어와 영어가 있습니다. 내 주요 URL을에서장고에서 여러 언어를 처리하기위한 여러 개의보기에 대한 하나의보기
가 내 게시물의 응용 프로그램의 URL을 파일은 다음과 같이
url(r'^posts/', include('posts.urls')), #for default language
url(r'^en/posts/', include('posts.urls')), #for english
입니다
:url(r'^newpost/$', views.PostFormView.as_view(), name='add'),
url(r'^favorite/$', views.favorite, name='favorite'),
때문에, 예를 들어, www.mysite.com/posts/add 모두와 www.mysite.com/en/posts/add는 PostFormView와 동일한보기로 보내고 url에 "/ en /"이 포함되어 있는지 여부에 따라 올바른 언어로 콘텐츠를 보냅니다.
그러나 문제는 리디렉션 또는 리버스 보내기가 항상 기본 언어로 전송된다는 것입니다. 예를 들어 'posts : add'는 url(r'^en/posts/', include('posts.urls'))
전에 두 개의 다른 URL에 대해 동일한보기를 사용할 수있는 방법이 있기 때문에 항상 "www.mysite.com/posts/add"로 보냅니다. 또는 여러 언어 웹 사이트를 어떻게 처리 할 수 있습니까? 지원되는 모든 언어로 모든 앱을 복제해야합니까?
다른 언어로 다른 URL을 사용하는 대신 Django의 [국제화 및 현지화] (https://docs.djangoproject.com/en/2.0/topics/i18n/) 기능을 살펴 보았습니까? – ubadub
@ubadub + 1, Django는 원래 이것을 지원했습니다. – Ykh
i18n urls 섹션의 문서는 [여기]입니다 (https://docs.djangoproject.com/en/2.1/topics/i18n/translation/#module-django.conf.urls.i18n) – Ykh