Как использовать новую таблицу в качестве внешнего ключа в существующей таблице в django

Привет всем у меня есть две модели 1 в Dailytrip и вторая Team, мне нужно использовать модель Team как внешний ключ в модели Dailytrip, при запуске Makemigrations получаю ошибку. я использую django-2.2 и python 3.7

Models.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

Причина, по которой это происходит, заключается в том, что вы определяете ForeignKey перед определением Team. Вы можете определить 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 записываются в snake_case, а не PascalCase, поэтому должно быть: team вместо Team.

Вернуться на верх