如何编写有很多关系的模型类?

时间:2013-02-05 10:27:04

标签: django django-models

我有班级人员:

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

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

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

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

即。引号ImageData

来自此处的文档ForiegnKey

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

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

class Manufacturer(models.Model):
    # ...