問題タブ [django-authentication]

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 投票する
2 に答える
5301 参照

django-authentication - django auth - has_perm は権限のリストが空のときに True を返します

このコード セクションで次のように出力される理由が不思議です。

すべての権限のリストが空の場合、 request.user.has_perm('bug_tracking.is_developer') が false を返すと思います!?

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

django - django: django.contrib.auth からのテストの失敗

django テストを実行すると、テスト スイートの外にある次のエラーが発生します。

誰が私に何を間違っているのか、またはそれらのテストに合格するために何を設定する必要があるのか​​ 説明できますか

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

django - カスタムユーザーモデルをユーザーUserProfileにリファクタリングする:カスタムUserManagerを作成するか、user.get_profile()を何十回も追加する必要がありますか?

UserProfileを作成し、AUTH_PROFILE_MODULEで定義することにより、django.contrib.auth.modelsから標準のユーザーモデルをカスタマイズしたアプリをリファクタリングしています。

問題は、UserProfileの属性が、ユーザーに表示される内容を決定するためにプロジェクト全体で使用されることです。

私はテストを作成し、このタイプのステートメントを繰り返し入力していました。

これは面倒で、DRYの原則に違反していないかどうか疑問に思っています。

ユーザーが要求されたときにUserProfileデータを自動的にロードするカスタムUserManagerを作成する方が理にかなっていますか。

UserProfile属性を繰り返し処理して、それらをUserモデルに追加することもできます。これにより、コードを散らかすカスタムモデル属性へのすべての参照を更新する必要がなくなります。

もちろん、UserモデルとUserProfileモデルを正しく更新できるようにするには、プロセスを逆にする必要があります。

Django風のアプローチはどれですか?

0 投票する
13 に答える
20892 参照

django - djangoのauth_user.usernameをvarchar(75)にすることはできますか?どうすればそれができますか?

メールに収まるようにaltertableを実行auth_userするusernameことに何か問題がありますか?varchar(75)どちらかといえば、それは何を壊しますか?

どこに変更auth_user.usernameするvarchar(75)場合、djangoを変更する必要がありますか?ソースコードを30から75に変更するだけですか?

または、変更する必要があるこのフィールドに関する他の検証、または変更するための他の影響はありますか?

それを行う理由については、以下のbartekとのコメントディスカッションを参照してください。

編集:何ヶ月も経った後、これを振り返ります。前提を知らない人のために:一部のアプリにはユーザー名を使用する要件や希望がなく、登録と認証に電子メールのみを使用します。残念ながら、django auth.contribでは、ユーザー名が必要です。ユーザー名フィールドにメールを入力することもできますが、このフィールドは30文字しかないため、実際にはメールが長くなる可能性があります。ここで提案されている75文字よりも長い可能性がありますが、75文字はほとんどの正常な電子メールアドレスに対応します。この質問は、電子メール認証ベースのアプリケーションで発生するこの状況を対象としています。

0 投票する
6 に答える
51647 参照

django - Django の self.client.login(...) が単体テストで機能しない

単体テスト用のユーザーを次の 2 つの方法で作成しました。

1) 「auth.user」のフィクスチャを作成します。これはおおよそ次のようになります。

一見重要でない部分を省略しました。

2) setUp 関数で 'create_user' を使用します (ただし、すべてをフィクスチャ クラスに保持したいのですが):

どちらの場合も、パスワードは simpson であることに注意してください。

この情報がテスト データベースに何度も正しく読み込まれていることを確認しました。User.objects.get を使用して User オブジェクトを取得できます。「check_password」を使用して、パスワードが正しいことを確認できます。ユーザーはアクティブです。

しかし、常に、self.client.login(username='homer', password='simpson') は失敗します。なぜだろうと困惑しています。私は、これに関するすべてのインターネット ディスカッションを読んだと思います。誰でも助けることができますか?

単体テストのログイン コードは次のようになります。

ありがとう。

0 投票する
4 に答える
19364 参照

django - すべてのページにdjangoログインフォームを配置する

ユーザーがログインしていない場合、サイトのすべてのページにログインフォーム (django.contrib.auth の AuthenticationForm) を表示したいと思います。ユーザーがログインすると、同じページにリダイレクトされます。エラーがある場合は、フォームと同じページにエラーが表示されます。

すべてのテンプレートにフォームを提供するには、コンテキスト プロセッサが必要になると思います。しかし、投稿されたフォームを処理するためにすべてのビューも必要ですか? これは、ミドルウェアを作成する必要があるということですか? 私は少し迷っています。

これを行うための受け入れられた方法はありますか?

0 投票する
4 に答える
890 参照

django - Djangoの設計に関する質問:ユーザーを拡張して、ログインできないユーザーを作成する

私が取り組んでいるサイトには、教師が生徒のオブジェクトを作成することが含まれています。教師は、生徒がサイトにログインできるようにする(カレンダーなどを確認する)か、生徒のオブジェクトを記録保持のみに使用し、生徒にログインを許可しないようにするかを選択できます。生徒の作成フォームでは、教師がユーザー名とパスワードを提供する場合、第1種のオブジェクト、つまりログインできるオブジェクト、つまり通常のUserオブジェクトを作成する必要があります。教師がユーザー名/パスワードを提供しない場合は、2番目のタイプを作成する必要があります。もう1つの要件は、教師が後で参加して、ログインしていない生徒を別の種類に変更できるようにすることです。このシナリオを設計するための最良の方法は何ですか?ユーザーをサブクラス化し、ユーザー名とパスワードを不要にしますか?これは他に何に影響しますか?

編集: User.set_unusable_password()を使用することになりました。コードは次のとおりです-私は自分のビューでも使用している他のフォームなどを省略しました:

フォームにユーザー名とパスワードは必要ありません。

意見

そして、学生を編集するためのビュー(おそらくcreate_studentビューと組み合わされます)では、GET用にこれがあります:

また、POSTでは、教師が新しいユーザー名と有効なパスワードを送信した場合、それらをUserインスタンスに設定するだけです。

みんなのアイデアをありがとう。

0 投票する
5 に答える
38129 参照

django - パスワードなしでユーザーを手動でログインする

パスワードを使用せずに手動 (サーバー側で開始) のログインを実装するための最良の方法を見つけるのを手伝ってくれることを願っています. ワークフローを説明しましょう。

  • ユーザー登録
  • ありがとうございました!アクティベーション リンクが記載されたメールが送信されました blablabla
  • (アカウントは現在存在しますが、無効とマークされています)
  • ユーザーがメールを開き、リンクをクリックする
  • (アカウントは有効です)
  • ありがとうございました!サイトが使えるようになりました

私がやろうとしているのは、ユーザーが電子メールのリンクをクリックした後にログインして、すぐに Web サイトの使用を開始できるようにすることです。

DB で暗号化されているため、彼のパスワードを使用できません。カスタム認証バックエンドを作成する唯一のオプションですか?

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

django - Django は認証のスーパーユーザー / pw / 電子メール データをどこに保存しますか?

syncdb を実行して su を作成した後、それはどこに記録されますか? Settings.py は変わらないようです。

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

django - Django認証

私のbase.htmlファイルでは、 ここを使用しています。ユーザーがログインしていても、ログインボタンが表示されます。
{% if user.is_authenticated %}
<a href="#">{{user.username}}</a>
{% else %} <a href="/acc/login/">log in</a>

リンクをクリックするlog inと、ユーザー名と通常のログインビューが表示され、ユーザーがログインしていることが示されます。

それで、何が問題なのですか?