在Python模块中排序

hln*_*hln 3 python django

 class Images(models.Model):
      job=models.OneToOneField(Jobs)
       image=models.ImageField()
 class Jobs(models.Model):
       picture=models.ForeignKey(Images, null=True)
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误

job=models.OneToOneField(Jobs)
Run Code Online (Sandbox Code Playgroud)

因为类作业稍后在模块中定义,但如果我改变这两个类的位置,那么它会给我一个错误

   picture=models.ForeignKey(Images, null=True)
Run Code Online (Sandbox Code Playgroud)

在这种情况下我该怎么做?(不在不同的模块中放置类)

And*_*ark 7

您可以使用带有类名的字符串在创建另一个模型之前实例化第一个模型:

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

class Jobs(models.Model):
    picture=models.ForeignKey(Images, null=True)
Run Code Online (Sandbox Code Playgroud)

模型上文档:

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

  • 不,它没有,Django有一些元类魔法,需要在类体内创建字段. (2认同)