Django ForeignKey到AbstractBaseUser

时间:2015-02-24 09:08:49

标签: python django django-models

我正在尝试设置一个可以处理有关注册用户的评论的应用。因此,在我的Review模型中,我希望将ForeignKey用于我的用户模型。

我正在使用如下所示的自定义用户个人资料:

#In /profiles/models.py
class MyUser(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,
    )
    company = models.CharField(default="", max_length=200)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    objects = MyUserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['company']

我已将其包含在settings.py AUTH_USER_MODEL =" profiles.MyUser"中。注册,创建用户等工作正常。所以我知道它的工作。

在我的评论模型中,我写了以下内容:

class Review(models.Model):
    company = models.ForeignKey(settings.AUTH_USER_MODEL)
    reviewer = models.ForeignKey(Reviewer)
    rating = models.IntegerField(default=0)
    review = models.TextField()
    pub_date = models.DateTimeField('date published')

而不是settings.AUTH_USER_MODEL我也尝试过编写profiles.MyUser,' profiles.MyUser'和MyUser。

我可以成功使用python manage.py makemigrations reviews命令。但是当我python manage.py migrate时,无论上面使用什么版本,我都会收到错误。

我得到的错误如下:

ValueError: Lookup failed for model referenced by field reviews.Review.company: profiles.MyUser

1 个答案:

答案 0 :(得分:0)

nejc92评论是正确的。在我第一次设置AUTH_USER_MODEL之前,我已经迁移了我的数据库。

我删除了整个数据库并为所有应用创建了新的迁移,并从头开始重新迁移所有内容。然后它工作了。

听起来像是一个错误(?)给我。