2

同様の質問を検索しましたが、これまでのところ見つかりませんでした。

User (django.contrib.auth.models.User) のサブクラスがあります。サイトで個人ユーザーとビジネス ユーザーの両方をサポートしたいので、この場合は次のようになります。

class BusinessUser(User):
    website = models.CharField(max_length=20)
    objects = UserManager()

ユーザーをユーザーとして保存する登録フォームと、ユーザーを BusinessUser として保存する登録フォームがあります。問題のあるケースは BusinessUser です。

BusinessUser の登録後に User オブジェクトと BusinessUser オブジェクトの両方が存在し、すべてのフィールド (ユーザー名、電子メール、パスワード) に問題がないことを Django コンソールで確認しました。

しかし、私のログイン ページでは、BusinessUser でログインできません。通常のユーザーの登録では問題なくログインできますが、BusinessUser ではログインできません。

誰が何が間違っているのか知っていますか?

ありがとうございました。

4

2 に答える 2

1

django のUserサブクラス化時にカスタム認証バックエンドを使用する必要があります

ここで例を見ることができます

私はこれをテストしていませんが、これはうまくいくと信じています。

于 2012-01-05T22:23:00.217 に答える
0

をサブクラス化しUserました。そんなことは絶対にしないでください。プロファイルを使用して追加のデータを追加します。本当に 2 つの別個のモデルが必要な場合 (たとえば、管理者に個人ユーザーとビジネス ユーザー用に 2 つの別個のビューを用意する場合) は、プロキシ モデルとカスタム マネージャーを作成して、User.

于 2012-01-05T22:11:21.663 に答える