複数のプロファイルで Django のユーザー認証機能を使用することは可能ですか?
現在、これを含む settings.py ファイルがあります。
AUTH_PROFILE_MODULE = 'auth.UserProfileA'
そして、これを含む models.py ファイル:
from django.db import models
from django.contrib.auth.models import User
class UserProfileA(models.Model):
company = models.CharField(max_length=30)
user = models.ForeignKey(User, unique=True)
そうすれば、ユーザーがログインすると、ユーザーには get_profile() メソッドがあるため、プロファイルを簡単に取得できます。ただし、UserProfileB を追加したいと思います。少し調べてみると、AUTH_PROFILE_MODULE として使用するスーパークラスを作成し、UserProfileA と UserProfileB の両方をそのスーパークラスから継承させることが出発点のようです。問題は、get_profile() メソッドが正しいプロファイルを返すとは思わないことです。スーパークラスのインスタンスを返します。私はJavaのバックグラウンド(ポリモーフィズム)から来ているので、何をすべきか正確にはわかりません。
ありがとう!
編集:
このサイトhttp://djangosnippets.org/snippets/1031/で見つけた「継承ハック」と呼ばれるものを介してそれを行う方法を見つけました
それは非常にうまく機能しますが、このようなことが自動的に行われるJavaのバックグラウンドから来て、誰かがこれをコード化してPythonでそれを行うために「ハック」と呼ばなければならなかったという事実に少し不安です. Pythonがこれを有効にしない理由はありますか?