問題タブ [login-required]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4565 参照

python - ビューが「login_required」で装飾されているかどうかをテストする方法 (Django)

「login_required」で装飾されたビューの(分離された)単体テストを行っています。例:

「my_view」関数が「login_required」で装飾されていることをテストできますか?

統合テスト (テスト クライアントを使用) で動作 (匿名ユーザーがログイン ページにリダイレクトされる) をテストできることはわかっていますが、分離テストで実行したいと考えています。

何か案が?

ありがとう!

0 投票する
2 に答える
345 参照

python - ビュー外のdjango login_requiredデコレータ

login_requireddjango ビューの外でデコレータを使用しようとしています。これをユーティリティの関数で使用しています。

そして、私はこれsomefunc()を私の見解で呼んでいます

これを行うと、object has no attribute 'user' Whats the issue here ?と表示されます。

0 投票する
1 に答える
485 参照

python - is_authenticated と is_superuser に基づいて generic.TemplateView を使用して template_name を設定するにはどうすればよいですか?

私はジャンゴを使用しています。django ユーザー アクセス レベルに基づいて使用するテンプレートを設定しようとしています。ご覧のとおり、LoginRequiredMixin と generic.TemplateView を使用しています。

これは私がやりたいことです:

このコードは、views.py で使用されます。

残念ながら、ユーザーにアクセスできないようです。このように。

views.py には、ユーザー認証に基づいて期待どおりに機能する API ビューもあります。それは次のとおりです。

どんな入力でも大歓迎です。ありがとうございました。

0 投票する
2 に答える
3098 参照

django - Django @login_required not redirecting to login page

I am using class based views in Django. @login_required decorator is not redirecting to login page. It still shows the profile page.

Can anyone help me. I m new to Django and any help would be appreciated.

Thanks in advance

0 投票する
1 に答える
219 参照

django - login_required ビューに次のパラメーターを使用する

ログイン後に URL をリダイレクトする私の方法はうまくいきますが、テンプレートのコードはあまり魅力的ではありません。views.py の私の関数

私のテンプレート:

私のデコレータ:

0 投票する
1 に答える
7253 参照

python - フラスコ:一度にすべてのルートを飾る?

コントローラーアクションを@login_required装飾するデコレーターがあります。ただし、私のアプリは非常に大きく、多くの異なるコントローラー ファイルに大量のルートがあります。各ルートを 1 つずつ装飾するのは、エラーが発生しやすく (簡単に見落とす可能性があります)、時間がかかるようです。

アプリ全体ですべてのルートを一度に装飾する方法はありますか?

認証をWebサーバー(Apache)からアプリケーションレベルに移動しているため、この問題が発生しています。

0 投票する
1 に答える
3688 参照

django - ジャンゴのLOGIN_REDIRECT_URL

私は Django を初めて使用し、django girls tutorialの終わりに近づいています。ビュー (特定の投稿をクリックするためのビュー) の post_detail の上に「@login_required」を追加し、login.html テンプレートを追加しました。したがって、投稿のタイトルをクリックすると、ログイン ページにリダイレクトされます (これまでのところ、非常に良好です)。URL はhttp://127.0.0.1:8000/accounts/login/?next=/post/11/ (私のコンピューターの ATM でこれを試してみてください。)

次に、管理者名/パスワードを入力すると、自動的にhttp://127.0.0.1:8000/accounts/profile/にリダイレクトされ、もちろん「ページが見つかりません (404)」が表示されます (url/view/ がないため)。そのためのテンプレート)。「ああ、/post/11/ にリダイレクトされたかっただけだ」と思いました。

スタックオーバーフローを調べたところ、次の質問が見つかりました:
サインインすると、Django で "/accounts/profile/" につながる(ほぼ正しいように聞こえます)
と答えが得られました

settings.py の LOGIN_REDIRECT_URL の値を変更します。

そこで、Django のドキュメントで LOGIN_REDIRECT_URL を調べました。

デフォルト: '/accounts/profile/'

contrib.auth.login ビューが次のパラメータを取得しない場合に、ログイン後にリクエストがリダイレクトされる URL 。

これは、たとえば login_required() デコレーターによって使用されます。

この設定は、2 つの場所 (設定と URLconf) で URL を定義する必要がないため、構成の重複を減らすために使用できる名前付き URL パターンも受け入れます。

バージョン 1.8 で非推奨: 設定は、ビュー関数へのドット付き Python パスの場合もあります。このサポートは、Django 1.10 で削除されます。

しかし、私の contrib.auth.login は次のパラメーターを取得しませんか? (最後に "?next=/post/11/" と書かれている私の URL を見てください) ここで私を助けてください。

ページは
http://finbel.pythonanywhere.com/
で、ソース コードは
https://github.com/Finbel/my-first-blogで見ることができます。

更新 (1):
これで、LOGIN_REDIRECT_URL が次にどこに到達するかを決定するものであることがわかりました。これは、URL の next-parameter を無視することを意味する必要があります。問題についてさらにグーグルで検索したところ、私の問題と非常によく似たこの質問が見つかりました。

ドキュメントには、「次の」パラメータとコンテキスト プロセッサを使用する必要があると記載されています。テンプレートに {{next}} がありますが、「/gallery/(username)」を実際に渡す方法がわかりません。どんな助けでも大歓迎です。

(テンプレートに {{next}} すらありません。どこにどのように追加すればよいですか?)

その質問に対する好ましい答えは次のように思われました。

Django のログイン ビュー django.contrib.auth.views.login は、extra_context という名前の辞書を受け入れます。ディクショナリの値はテンプレートに直接渡されます。したがって、それを使用して次のパラメーターを設定できます。それが完了したら、名前が next で値が {{ next }} の非表示フィールドを設定して、テンプレートでレンダリングされるようにすることができます。

しかし、私はこれをどのように解釈するかわかりません。この編集を書いているときに、この投稿 (kacperd による) で回答を得たので、今から読みます)