3
 class Images(models.Model):
      job=models.OneToOneField(Jobs)
       image=models.ImageField()
 class Jobs(models.Model):
       picture=models.ForeignKey(Images, null=True)

エラーが発生します

job=models.OneToOneField(Jobs)

クラスジョブはモジュールの後半で定義するためですが、これら2つのクラスの位置を変更すると、エラーが発生します

   picture=models.ForeignKey(Images, null=True)

この場合、どうすればよいですか?(異なるモジュールにクラスを配置せずに)

4

1 に答える 1

7

クラス名に文字列を使用して、他のモデルが作成される前に最初のモデルをインスタンス化できます。

class Images(models.Model):
    job=models.OneToOneField('Jobs')
    image=models.ImageField()

class Jobs(models.Model):
    picture=models.ForeignKey(Images, null=True)

モデルのドキュメントから:

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

于 2013-04-09T16:39:23.703 に答える