私は2つのdjangoアプリケーションを統合しようとしていますが、それぞれに個別の認証が働いています。これを行うには、Userの代わりにAbstractUserをサブクラス化しようとしています。私はPyBB docsとDjango#substituting_custom_modelに従っています。私は自分のアプリケーションのすべてのマイグレーションファイルを個別の .py(私のサイトパッケージに入っているPyBBライブラリからの移行を含む)から除外しました。また、私はMysqlデータベースを空白に変更して新たに開始しました。私は以下のようにAbstractUserをサブクラス化しようとしています。DjangoでAbstractUserを拡張する正しい方法は?
マイModels.py:
from django.contrib.auth.models import User
from django.contrib.auth.models import AbstractUser
from django.db import models
class Student_User(models.Model):
"""
Table to store accounts
"""
su_student = models.OneToOneField(AbstractUser)
USERNAME_FIELD = 'su_student'
su_type = models.PositiveSmallIntegerField(db_column='su_type', default=0)
su_access = models.TextField(db_column='su_access', default='')
su_packs = models.TextField(db_column='su_packs', default='')
REQUIRED_FIELDS = []
def __unicode__(self):
return str(self.su_student)
私のsettings.py:
app.Student_User.su_student: (fields.E300) Field defines a relation with model 'AbstractUser', which is either not installed, or is abstract.
がどのように実行します。
AUTH_USER_MODEL = "app.Student_User"
PYBB_PROFILE_RELATED_NAME = 'pybb_profile'
私の主なアプリをmakemigrationsを実行している、私はこのエラーを取得します私はここで何をしようとしていますか?
PS:このアプリは、username_fieldまたはrequired_fieldのないUserでonetooneで正常に動作していました。
PPS:contrib.auth.modelsでAbstractUserモデルを確認したところ、それはclass Meta: abstract = True
です。わかりましたので、抽象的な、まだ、私はこれをどのように解決しますか?私はちょうど1つのログインが必要です、現在、私のサイトの2つの部分は、URLを介して接続されているが、別のログインを求めて、他のログインを検出しないでください。これのために私は何をする必要がありますか?