Как использовать новую таблицу в качестве внешнего ключа в существующей таблице в 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