問題タブ [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.
django - Django: 他のデコレータ内で login_required デコレータを再利用する
私が同意するhttps://stackoverflow.com/a/8715790/210481のコメントの 1 つによると、一方が他方に依存している場合、複数のデコレーターを避ける必要があります。
したがって、この例では、アクティブなユーザー向けのデコレーター「active_required」がある場合、同じビューで active_required と login_required の両方を使用する必要はありません。
「active_required」デコレーターの内部で「login_required」デコレーターを「呼び出される」ようにする必要があります。
djangoに付属している標準の「login_required」デコレーターでそれを行うことは可能ですか?
私の要件は次のとおりです: 1) ユーザーが認証されていない場合、私は彼を LOGIN_URL にリダイレクトする必要があります。アカウント 3) ユーザーが認証され、アクティブな場合、ユーザーはビューにアクセスできます
前もって感謝します
django - login_requiredデコレータを@method_decoratorでデコレートする必要があるのはなぜですか
このブログ投稿に投稿されたミックスインのコードを理解しようとしています。
これらのミックスインは、ミックスイン内login_requiredからデコレータを呼び出しますが、 fromによって装飾されます。以下のサンプルコードでは、デコレータを装飾する必要がある理由がわかりません。django.contrib.auth.decoratorsmethod_decoratordjango.utils.decoratorslogin_required
デコレータは、method_decorator「関数デコレータをメソッドデコレータに変換する」ために使用されると言っていますが、テストコードでは、method_decoratorがなくてもデコレータを使用できます。
私のデコレータ
上記のデコレータを直接呼び出すクラスは、によって装飾されたデコレータを呼び出す場合と同じ結果を直接生成します。method_decorator
django - Django @login_requiredビューは、ユーザーがChromeの履歴に戻ってログアウトしたときにも表示されます
::編集::
@cache_control(no_cache=True, must_revalidate=True, no_store=True)FTW !!!!!
キャッシュ制御:キャッシュなし、ストアなし、再検証する必要があります。数人のIRCちゃんに行って周りを見回すのに時間がかかりましたが、ようやく動作するようになりました。
::編集::
@login_requiredを設定しているビューがあり、ほとんどの場合安全ですが、ビューを確認してからログアウトし、ブラウザの[戻る]ボタンを押すだけで、質問されることなくコンテンツを再度表示できます。ログインします。ただし、ページを更新すると、サーバーがリダイレクトします。
私の一時停止はキャッシュの問題であり、Chromeに履歴に保存しないように指示する必要があるかもしれません。
たとえば、請求書を表示してからログアウトした場合、バック履歴でそのページを選択すると、請求書を再度表示できます。
私はこの問題をFirefoxで問題なく試しました。Firefoxはバックエンドをログに記録するように要求するので、ブラウザの問題である必要があります。
python - ログインに必要なデコレータに継続URLを渡す方法
私は次のようにlogin_requiredデコレータを持っています:
これで、Page(個別にレンダリングされるHandler)があり、ゲストとユーザーの両方が表示できる画像をユーザーがアップロードするためのオプションがあります。フォームが投稿されるとすぐに、デコレータHandlerを使用する別のフォームによって処理されます。@login_required
私が達成したいのは、ユーザーがログイン後に同じページにリダイレクトされるように、リダイレクト中continue_urlに関数で使用できる変数を渡すことです。check_login
django - Django の関数内 @login_required
私はDjangoが初めてです。私のウェブサイトでは、私はこのようなことをしようとしていました
だから私の考えは、ユーザーがログインしている場合に表示されるデータベースからの情報を取得することでした。
または、そのようにするのが悪い習慣だと思う場合は、別の方法で行う方法をいくつか教えてください。何らかの方法で urls.py を変更する必要があるかもしれません。
ありがとうございました。
python - Pythonデコレータは何をしますか、そしてそのコードはどこにありますか?
重複の可能性:
Pythonデコレータを理解する
Pythonデコレータは何をしますか?また、メソッドにデコレータを追加したときに実行されているコードはどこで確認できますか?
たとえば@login_required、メソッドの先頭に追加すると、その行を置き換えるコードはありますか?この行はユーザーセッションをどの程度正確にチェックしますか?
django - Django 登録と他のビューからのコンテンツ
私の状況は次のとおりです。
CMS である django アプリがあり、この 1 つのアプリがページ コンテンツとメニューを生成します。
すべてのページ コンテンツを生成する「デフォルト」ビューがあります。メイン モデルのフィールドの 1 つは、設定に応じてページの表示を制限するように設計されています。
- 「内部」(ネットワーク上のユーザーに限定)、
- 'worldwide' (www で表示可能) であり、さらに値を追加したいと思います。
- サイトにログインしているユーザーのみに閲覧を制限します。
@login_required は関数全体でのみ機能するため、機能するとは思いません。
作成者または編集者が、特別な関数をコーディングするのではなく、このフラグを設定できるようにする必要があります。また、ページが「内部」から「安全」、そして「全世界」に移行する場合があります。したがって、理想的には、URL は同じままにする必要があります。
これについて最善の方法は何ですか?前もって感謝します... パトリック
python - ログインが必要な同じ URL に対して多数の HTML を使用できるデコレータ
django ジェネリック ビューによって提供される URL へのアクセスを制限したいと思います。ログインが必要なデコレータを調査しましたが、ドキュメントで対処されていない複雑な問題があるため (または少なくとも見つけることができなかったので)、機能させるのに部分的な成功しかありませんでした。
デコレータを追加する前に、urls.py には次のものがあります。
上記の検索機能は、さまざまな条件に応じて、可能な 4 つの html ページのいずれかをレンダリングするという点で少し複雑です。
デコレータを使用して複数の html ページを処理する方法がドキュメントに表示されず、正しい構文を理解できないようです。
4 つの HTML ページのいずれかでデコレータを使用してみましたが、その 1 つの HTML ページで機能します。
しかし、考えられるすべての html に対してログインを要求するにはどうすればよいでしょうか? たとえば、次のようなことを試しました。
また、ジェネリック ビューのサブクラス化も試みました。
//view.py内
//urls.py 内
しかし、template_name_1 と template_name_2 が存在しないというエラーが表示されます...
どんな助けでも大歓迎です。
python - Django 1.5.1 login_required デコレーターが認証されていないユーザーをキャッチしない
私は非常に典型的な view/login_required デコレーターの実装をしていますが、QA チームは 1 日に 2 回、次のエラーに遭遇することがあると報告されています。
私がチェックしたところ、ビューには実際にlogin_requiredデコレータがあります。login_required で装飾された他のビューでも報告されています。
ビューのリターンは次のとおりです。
参考までに: ctx インスタンスはセッションに保存され、多くの場合、ビュー呼び出し間で更新されます。私はこのデザインを継承しましたが、それについてはどうすることもできません。これを処理する関数は次のとおりです。