あなたがこれを持っている場合models.py
:
class Car(models.Model):
name = models.CharField(max_length=200)
manufacturer = models.ForeignKey(Manufacturer)
class Manufacturer(models.Model):
name = models.CharField(max_length=200)
クラスは の後Manufacturer
に定義されているため、インタープリターがこの行:に到達すると、名前空間で名前のManufacturerを見つけることができず、エラーが発生します。 Car
models.ForeignKey(Manufacturer)
これを回避するには、通常、定義の順序を変更します。
class Manufacturer(models.Model):
name = models.CharField(max_length=200)
class Car(models.Model):
name = models.CharField(max_length=200)
manufacturer = models.ForeignKey(Manufacturer)
ここで、インタープリターが製造元の外部キー定義に到達すると、クラスは既に定義されています (Car
クラスの前に宣言されているため)。これを行う別の方法。モデルが宣言されている順序をシャッフルしたくない場合は、参照するモデルの名前である文字列を使用することです。名前ではなく文字列であるため、Python はエラーを発生させません。