[英]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.