我的模特是
value
我想使用彼此的模型键作为ForeignKey,但是因为“未定义Hallinfo”而得到错误,如果我在RoomInfo上面定义HallInfo,则会给出错误RoomInfo未定义
答案 0 :(得分:2)
如果您要在关系的两边定义外键,则需要ManyToManyField
或OneToOneField
。
所以只需删除两个外键并在关系的一侧定义多对多或一对一..
class RoomInfo(models.Model):
hall = models.OneToOneField(Hallinfo)
答案 1 :(得分:0)
为此,您可以使用字符串引用[1]
class RoomInfo(models.Model):
hall = models.ForeignKey("Hallinfo", unique=True)
mobile_no = models.CharField(max_length=10, blank=True)
class HallInfo(models.Model):
room = models.ForeignKey("RoomInfo", unique=True)
mobile_no = models.CharField(max_length=10, blank=True)
但是,您还需要至少在一个ForeignKey字段中添加null=True
,否则您将无法在没有必需参考值的情况下保存模型的第一个实例。
答案 2 :(得分:0)
尝试使用其他方式声明FK。 https://docs.djangoproject.com/en/1.9/ref/models/fields/#foreignkey
Personnaly我总是使用这种表示法:
manufacturer = models.ForeignKey(
'app_name.ModelName',
....
)
在你的情况下:
> class RoomInfo(models.Model):
> hall = models.ForeignKey('appname.Hallinfo', unique=True)
> mobile_no = models.CharField(max_length=10, blank=True)
>
> class HallInfo(models.Model):
> room = models.ForeignKey('appname.RoomInfo', unique=True)
> mobile_no = models.CharField(max_length=10, blank=True)