1

私はクラスPersonを持っています:

class Person(models.Model):
    name = ...
    [etc]
    client = models.BooleanField(default=True)
    image = models.ForeignKey(ImageData, null=True)

このクラスには、個人のデータと販売者のデータが含まれています。そして、私はクラスImageを持っています。このモデルには、クライアント画像のデータと販売者画像のデータが含まれています。売り手が画像フィールドを作成する場合、作成者はこの売り手との個人関係である必要があります。

class ImageData(models.Model):
    creator = models.ForeignKey(Person)
    [etc]

このクラス定義は、1つのファイル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)

すなわち。を引用符で囲みますImageData

ここのドキュメントからForiegnKey

まだ定義されていないモデルに関係を作成する必要がある場合は、モデル オブジェクト自体ではなく、モデルの名前を使用できます。

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

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