私はクラスを持っている人:
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
これを解決するには?
回答:
回答№1の場合は3モデルがまだ定義されていない場合は、文字列として名前を付けることができますので、この種のエラーは発生しません。
image = models.ForeignKey("ImageData", null=True)
すなわち、引用符 ImageData
.
ここのドキュメントから ForiegnKey
まだ定義されていないモデルでリレーションシップを作成する必要がある場合は、モデルオブジェクト自体ではなく、モデルの名前を使用できます。
class Car(models.Model):
manufacturer = models.ForeignKey("Manufacturer")
# ...
class Manufacturer(models.Model):
# ...