2

Pinaxで、ログインが必要なリンクがある場合(つまり、@ login_requiredデコレータを使用している場合)、「次は何か」にリダイレクトされるのではなく、ログイン後にそのリンクにリダイレクトするにはどうすればよいですか?

ありがとう

4

2 に答える 2

4

LOGIN_REDIRECT_URL設定を設定するだけです。

編集 Pinaxは別の設定LOGIN_REDIRECT_URLNAMEもサポートしているようです。これは、LOGIN_REDIRECT_URLreverseと同じことを行うようですが、URL名に設定されているため、settings.pyファイルでを呼び出す必要はありません。

より「動的な」リダイレクトの場合、pinax.apps.account.views.loginビューは、 pinax.apps.account.utils.get_default_redirectを使用して、以下からリダイレクトURLを検索します。

  1. 'next'という名前のGETまたはPOSTパラメーター(デフォルトでは、カスタマイズ可能ですが)。
  2. LOGIN_REDIRECT_URL設定
  3. LOGIN_REDIRECT_URLNAME設定

のコードは、get_default_redirect実際にはセッションで「redirect_to」キーをチェックインしています。このキーは、メソッドがそれ自体を調べようとしないため、おそらく設定で定義された値の1つを保持しますdjango.conf.session。docstringは、これらの設定をチェックすると主張していますが、それはプロジェクトで経験していることのようです。

于 2011-04-05T21:46:36.683 に答える
0

ログインフォーム内のtemplates/account/login.htmlファイルに次の非表示の入力を追加します。

<input type="hidden" name="next" value="{{ request.GET.next }}" />

それでうまくいくはずです。ここにあるドキュメントを読んだ後、解決策を思いついた:http: //docs.djangoproject.com/en/dev/topics/auth/

于 2011-05-19T08:24:20.100 に答える