Python 2 django型号主键和外键
我需要设置一个带有主键和外键的模型。第二个模型也是如此 默认情况下,第一个模型将tcu_id设置为主键:Python 2 django型号主键和外键,python,django,sqlite,django-models,Python,Django,Sqlite,Django Models,我需要设置一个带有主键和外键的模型。第二个模型也是如此 默认情况下,第一个模型将tcu_id设置为主键: class Tcu(models.Model): imei = models.CharField(max_length=30, unique=True) 第二个模型的主键设置为True,外键来自tcu模型: class Sim(models.Model): phone_num = models.CharField(max_length=30, primary_key=Tru
class Tcu(models.Model):
imei = models.CharField(max_length=30, unique=True)
第二个模型的主键设置为True,外键来自tcu模型:
class Sim(models.Model):
phone_num = models.CharField(max_length=30, primary_key=True)
tcu = models.ForeignKey(Tcu, null=True, blank=True)
这工作正常,但当我尝试向第一个模型添加外键时,问题出现了:
class Tcu(models.Model):
imei = models.CharField(max_length=30, unique=True)
phone_num = models.ForeignKey(Sim, null=True, blank=True)
在tcu phone_num=型号。外键(Sim)
名称错误:未定义名称“Sim”状态:
如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身
因此,在您的情况下,这将是:
class Tcu(models.Model):
imei = models.CharField(max_length=30, unique=True)
phone_num = models.ForeignKey('Sim', blank = True)
class Sim(models.Model):
phone_num = models.CharField(max_length=30, primary_key=True)
tcu = models.ForeignKey(Tcu, null=True, blank=True)
各国:
如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身
因此,在您的情况下,这将是:
class Tcu(models.Model):
imei = models.CharField(max_length=30, unique=True)
phone_num = models.ForeignKey('Sim', blank = True)
class Sim(models.Model):
phone_num = models.CharField(max_length=30, primary_key=True)
tcu = models.ForeignKey(Tcu, null=True, blank=True)
你导入模型Sim卡了吗?我真的不明白你为什么要在这里双向使用FKs。那没有道理。Sim卡和Tcu之间的实际关系是什么?你说得对!谢谢你!我正在我的本地主机上测试一些功能。你导入了模型Sim吗?我真的不明白你为什么要在这两个方向上使用FKs。那没有道理。Sim卡和Tcu之间的实际关系是什么?你说得对!谢谢你!我正在本地主机上测试一些功能