私はDjangoの新機能です。アプリケーションのさまざまなタイプの認証に複数のモデルを使用することができますか?たとえば、顧客使用顧客モデル、サプライヤ使用サプライヤモデル、管理用のデフォルトのユーザー登録モデルも保持しますか?もしそうなら、正しい方向に私を向けることができます、どのようにそれを行うことができますか?どのパッケージを使うべきですか? 私は、認証に必要な外部キーを各モデルに追加することで、パフォーマンスの問題を引き起こす可能性のあるすべてのクエリに外部キーを追加するという方法があります。より良い方法があるかどうかを知る必要があります。また、これらのカスタムモデルは、管理パネルで利用可能なすべての権限に役立ちます。 専門家の意見は本当に感謝します。Django - 認証に複数のモデルを使用する
答えて
これを処理するオプションはいくつかあります。 最初に確認してくださいthe Django-docu。
Djangoのデフォルトの認証は、ユーザー名とパスワードで動作します: 私はメールアドレスを使用してユーザーを認証するためにそれをカスタマイズしたいyou'ldましたが、ここでは元の文書にknbkとrahul-guptaによって書かれた例です。フィールド。電子メール認証バックエンドは、電子メールとパスワードに基づいてユーザーを認証します。
from django.contrib.auth import get_user_model class EmailBackend(object): """ Custom Email Backend to perform authentication via email """ def authenticate(self, username=None, password=None): user_model = get_user_model() try: user = user_model.objects.get(email=username) if user.check_password(password): # check valid password return user # return user to be authenticated except user_model.DoesNotExist: # no matching user exists return None def get_user(self, user_id): user_model = get_user_model() try: return user_model.objects.get(pk=user_id) except user_model.DoesNotExist: return None
この認証バックエンドをAUTHENTICATION_BACKENDS設定に追加します。
# settings.py AUTHENTICATION_BACKENDS = ( 'my_app.backends.EmailBackend', ... )
複数のモデルを使用してユーザーを認証したいと考えています。それは可能ですか? –
@タヒールには2通りの方法があります。既存の認証システムを拡張するか、新しい認証システムを作成します。 あなたが実際にやろうとしていることを説明することは可能でしょうか? –
私のアプリケーションは3つの異なるポータルを持ちます.1つは管理用、1つは顧客用、もう1つはサプライヤ用です。私は各ポータルに別々の認証システムを使いたいと思う。私は、デフォルトの管理者cPanelの権限システムから利益を得ることができるようにしたいと考えています。これは可能ですか? –
- 1. 複数のアプリケーションからdjango認証システムを使用する
- 2. Django 2モデル1認証システム
- 3. Django - 同じモデルに複数の外部キーを使用する
- 4. djangoモデルで認証されたユーザを使用
- 5. Django:モデルを使用して複数のテーブルを照会する
- 6. カスタム認証モデル用のcreate_superuser
- 7. Django:モデルへの認証ユーザーのインポート
- 8. djangoの残りのユーザーを認証するために複数のテーブルを使用するには?
- 9. 複数のモデルをテンプレートに渡すDjango
- 10. Rails:複数のモデルに同じカスタム検証メソッドを使用
- 11. Django 1.5:UserCreationFormとカスタム認証モデル
- 12. Django - 複数のデータベースで認証するときのグローバル名エラー
- 13. 複数のモデルにわたるdjangoアクセスフィールド
- 14. 複数のトークンを使用するHttpclientの認証
- 15. Django複数の "デイジーチェーン"モデル
- 16. 複数モデルのDjangoテンプレート
- 17. はただDjangoの認証ユーザーモデル を使用して一つのモデル
- 18. 複数のデータベースを使用するWeb API認証
- 19. 複数の認証要素をweb.configで使用する
- 20. ASP.NETコアで複数の認証方式を使用する
- 21. Djangoプロジェクト:複数のモデルで使用されるモデル定義の場所
- 22. 複数のモデル(テーブル)を使用したDjangoページネーション
- 23. クロムエクステンションとDjangoを使用した認証
- 24. Django複数の認証バックエンド、1つのプロジェクト、どのように?
- 25. ユーザー作成時に複数のモデルを使用する
- 26. Djangoの別のモデルで同じモデルを複数参照する
- 27. 複数のデータベースを使用するDjango
- 28. クエンセットを再利用するDjangoルックアップ複数のモデル
- 29. Djangoモデルの継承を使用してテーブルを複製する
- 30. 複数のモデルを1つのビューで使用する方法django?
これはかなり意見に基づいています。個人的には、基本ユーザー認証モデルに戻るOneToOne関係を持つプロファイルモデルを作成することを好みます。これはこれを行う唯一の方法ではありませんが、IMOは最も単純で最もモジュラーです。 – souldeux
@souldeuxデータの広範なアプリケーションでは、ジョインが関係するため、パフォーマンス上の問題が発生する可能性があります。 –