2

私はdjangoでかなり新しいです。認証システムを構築し、ユーザープロファイルをmongodbに保存するために、django、mongoengine、django-social-authを使用しています。

次のように、djangoが提供する「カスタムユーザーモデル」メカニズムを使用しています。

from mongoengine import *
from mongoengine.django.auth import User

class UserProfile(User):

    imageUrl = URLField()

    def __init__(self):
        User.__init__()

settings.py include ('users' はアプリ名):

SOCIAL_AUTH_USER_MODEL = 'users.UserProfile'

「python manage.py runserver」を実行すると、次のエラーが発生しました。

social_auth.usersocialauth: 'user' has a relation with model users.UserProfile, which has either not been installed or is abstract.

次のように、UserProfile クラスを models.Model から継承するように変更すると、次のようになります。

from mongoengine import *
from mongoengine.django.auth import User
from django.db import models

class UserProfile(models.Model):

    imageUrl = URLField()

    def __init__(self):
        User.__init__()

「python manage.py runserver」を実行すると、問題なく開発サーバーが起動しました。

したがって、カスタム ユーザー モデルは models.Model から継承する必要があると思います。mongoengine.django.auth.User からカスタム ユーザー モデルを継承するにはどうすればよいでしょうか。

4

1 に答える 1