私は、カスタムユーザーモデルを使用しているdjangoアプリに取り組んでいます。AUTH_USER_MODEL
つまり、クラスを AUTH_USER_MODEL = 'account.User'
拡張して、次のようなモデルを作成しましたAbstractBaseUser
class User(AbstractBaseUser):
is_provider = models.BooleanField(_('Provider status'), default=False)
USERNAME_FIELD = 'email'
..........
私のsettings.py
ファイルに追加したAUTH_USER_MODEL = 'account.User'
ことは、私のユーザーモデルがdjango.contrib.auth.Userではなくaccounts.Userであることを意味します。
django-reviews app アプリを webapp に追加してレビューを取得したい のですが、問題はdjango-reviewsが DJango.contrib.auth.User をデフォルトの AUTH_USER_MODEL として使用していることです。
class Review(models.Model):
"""A ``Review`` consists on a comment and a rating.
"""
content_type = models.ForeignKey(ContentType, verbose_name=_(u"Content type"), related_name="content_type_set_for_%(class)s")
content_id = models.PositiveIntegerField(_(u"Content ID"), blank=True, null=True)
content = generic.GenericForeignKey(ct_field="content_type", fk_field="content_id")
# if the user is authenticated we save the user otherwise the name and the
# email.
user = models.ForeignKey(User, verbose_name=_(u"User"), blank=True, null=True, related_name="%(class)s_comments")
session_id = models.CharField(_(u"Session ID"), blank=True, max_length=50)
user_name = models.CharField(_(u"Name"), max_length=50, blank=True)
user_email = models.EmailField(_(u"E-mail"), blank=True)
comment = models.TextField(_(u"Comment"), blank=True)
score = models.FloatField(_(u"Score"), choices=SCORE_CHOICES, default=3.0)
active = models.BooleanField(_(u"Active"), default=False)
creation_date = models.DateTimeField(_(u"Creation date"), auto_now_add=True)
ip_address = models.IPAddressField(_(u"IP address"), blank=True, null=True)
今、それは私にエラーを与えています
File "/home/user/dir/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 314, in validate
raise CommandError("One or more models did not validate:\n%s" % error_text)
django.core.management.base.CommandError: 1 つ以上のモデルが検証されませんでした: reviews.review: 'user' はモデル 'auth.User' との関係を定義しますが、これは交換されました。settings.AUTH_USER_MODEL を指すようにリレーションを更新します。
デフォルトの認証モデルをAUTH_USER_MODELとして使用せずに、アプリでdjango-reviewsを使用する方法を教えてください。