我有班级人员:
class Person(models.Model):
name = ...
[etc]
client = models.BooleanField(default=True)
image = models.ForeignKey(ImageData, null=True)
此类包含卖家的人员和数据。 我有班级形象。该模型包含客户图像数据和卖家图像数据。当卖家创建图像时,创建者必须是与该卖家的人员关系:
class ImageData(models.Model):
creator = models.ForeignKey(Person)
[etc]
这个类定义在一个文件models.py中。当类ImageData是第一个manage.py时说:
NameError: name 'Person' is not defined
当班级人员第一时:
NameError: name 'ImageData' is not defined
如何解决这个问题?
答案 0 :(得分:3)
如果尚未定义模型,可以将名称作为字符串,这样就不会出现这种错误。因此,请将您的定义更新为
image = models.ForeignKey('ImageData', null=True)
即。引号ImageData
。
来自此处的文档ForiegnKey
如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身:
class Car(models.Model):
manufacturer = models.ForeignKey('Manufacturer')
# ...
class Manufacturer(models.Model):
# ...