2015-02-24 143 views
0

我想設置一個應用程序,將處理有關注冊用戶的評論。所以在我的評論模型中,我想要一個ForeignKey到我的用戶模型。Django ForeignKey的AbstractBaseUser

我使用看起來像這樣一個自定義的用戶配置文件:

#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 
+0

您的個人資料應用包含在INSTALLED_APPS中嗎? – 2015-02-24 09:21:17

+0

是的。用戶類在註冊用戶等方面效果很好。 – 2015-02-24 09:22:09

+0

您可能需要將初始配置文件遷移作爲依賴項添加到評論之一。 – 2015-02-24 09:25:32

回答

0

nejc92評論是正確的。在我第一次設置AUTH_USER_MODEL之前,我已經遷移了我的數據庫。

我刪除了我的整個數據庫併爲所有應用程序創建了新的遷移,並從頭開始再次遷移了所有內容。然後它工作。

聽起來像一個錯誤(?)給我。