1

我有类人:

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

当类 Person 是第一个时:

NameError: name 'ImageData' is not defined

如何解决这个问题?

4

1 回答 1

3

如果模型尚未定义,您可以将名称作为字符串,这样就不会出现此类错误。因此,将您的定义更新为

image = models.ForeignKey('ImageData', null=True)

IE。报价ImageData

从这里的文档ForiegnKey

如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身:

class Car(models.Model):
    manufacturer = models.ForeignKey('Manufacturer')
    # ...

class Manufacturer(models.Model):
    # ...
于 2013-02-05T10:32:57.800 回答