簡體   English   中英

如何在 django 中將新表用作現有表中的外鍵

[英]how to use new table as a foreign key in existing table in django

大家好,我在 Dailytrip 中有兩個 model 1,第二個是團隊,我需要在 Dailytrip model 中使用團隊 model 作為外鍵,同時運行 Makemigrations 出現錯誤。 我正在使用 django-2.2 和 python 3.7

模型.py

class DailyTrip(BaseModel):
    date = models.DateField(default=None)
    Team=models.ForeignKey(
        Team,
        models.CASCADE,
        verbose_name='Team',
        null=True,
        default=None
    )

class Team(BaseModel):
    name = models.CharField(max_length=30)

    def __str__(self):
        return self.name

錯誤

class DailyTrip(BaseModel):
  File "E:\11-march-2022\everest_jarvis\fleet\models.py", line 595, in DailyTrip
    Team,
NameError: name 'Team' is not defined

發生這種情況的原因是因為您在定義Team之前定義了ForeignKey 您可以先定義Team ,因此:

class Team(BaseModel):
    # …
    pass

class DailyTrip(BaseModel):
    # …
    Team = models.ForeignKey(
        Team,
        models.CASCADE,
        verbose_name='Team',
        null=True,
        default=None
    )

或者如果那不可能,請使用字符串文字:

class DailyTrip(BaseModel):
    # …
    Team = models.ForeignKey(
        'Team',
        models.CASCADE,
        verbose_name='Team',
        null=True,
        default=None
    )

class Team(BaseModel):
    # …

注意:通常 Django model 中的字段名稱是用snake_case寫的,而不是PascalCase ,所以應該是: team而不是Team

暫無
暫無

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

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