簡體   English   中英

現有表中的Django模型外鍵

[英]Django model foreign key from existing table

在我的django項目中,我使用django-registration可重用應用程序。 我安裝此應用程序並運行syncdb。 它是在我的數據庫中為我創建的表'registration_registrationprofiles'。 然后,我創建一個新的應用程序並將此代碼寫入我的models.py中:

class Comments(models.Model):
    text = models.TextField()
    pub_date = models.DateTimeField(auto_now=True)
    user = models.ForeignKey('registration_registrationprofiles')

並運行manage.py makemigrations,它會拋出異常:

ERRORS:
comments.Comments.user: (fields.E300) Field defines a relation 
with model 'registration_registrationprofiles', which is either
not installed, or is abstract.

我該如何解決這個問題?

嘗試這個:

from registration.models import RegistrationProfile

接着:

user = models.ForeignKey(RegistrationProfile)

遷移可以聲明依賴項。 通常,makemigrations在此方面做得很好,但這次似乎錯過了。 我建議您找到它創建的遷移文件(在your_app/migrations )並檢查其dependencies 它看起來應該像這樣:

class Migration(migrations.Migration):
    dependencies = [("registration", "0042_some_migration")]

    # operations...

dependencies數組中的鍵應引用注冊應用程序以及最新的遷移(或至少是您依賴的最新版本)。

然后, manage.py makemigrations將檢測依賴性並以正確的順序運行遷移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM