0

URL用のi18nを使用してDjangoアプリも開発しました。

見た目はとてもいいのですが、言語を変更するときは、同じ/前のページにとどまりたいと思います。

それを行う最善の方法は何ですか?

基本的に、新しい URL を取得するにはreverse、言語を変更した後に前のページの名前を変更してリダイレクトする必要がありますが、前のページの URL 名を知るにはどうすればよいですか?

編集:

同僚からの解決策:

request.resolver_match を使用して、各言語の次のパラメーターを計算します。各言語: activate(language) + reverse('{app_name}:{url_name}', args, kwargs)request.resolver_match 要素を使用

もっと良いアイデアはありますか?

4

2 に答える 2

0

2 つのオプション:

オプション1

ドキュメントformのを使用すると、元のページに戻ることができます。

オプション 2

言語を変更するときは、リファラー ヘッダーを使用して、元のHTTP_REFERER場所にリダイレクトすることができます

# Change the language
# ... code ...

# Redirect back to where we came from
redirect_to = request.META.get('HTTP_REFERER', reverse('default-redirect-page'))
return HttpResponseRedirect(redirect_to)
于 2013-05-03T08:45:54.367 に答える