Python 名称错误:名称';交货订单';没有定义

Python 名称错误:名称';交货订单';没有定义,python,django,sqlite,django-models,django-2.0,Python,Django,Sqlite,Django Models,Django 2.0,在这里,我试图将deliveryorder作为ForeignKey调用到PurchaseOrder表中。一旦运行makemigrations,就会显示上面的错误。此外,我无法在DeliveryOrder之后编写PurchaseOrder定义,因为DeliveryOrder表也将PurchaseOrder作为ForeignKey保存 采购订单 class PurchaseOrder(models.Model): part = models.ForeignKey(Part, on_d

在这里,我试图将deliveryorder作为ForeignKey调用到PurchaseOrder表中。一旦运行makemigrations,就会显示上面的错误。此外,我无法在DeliveryOrder之后编写PurchaseOrder定义,因为DeliveryOrder表也将PurchaseOrder作为ForeignKey保存

采购订单

class PurchaseOrder(models.Model):
   
    part = models.ForeignKey(Part, on_delete=models.CASCADE)
    deliveryorder = models.ForeignKey(DeliveryOrder)
    po_quantity = models.PositiveIntegerField(default= 0)
    supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    created_date = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.part.partname
交货单

class DeliveryOrder(models.Model):
    purchaseorder = models.ForeignKey(PurchaseOrder, on_delete=models.CASCADE)
    do_quantity = models.PositiveIntegerField(default= 0)
    created_date = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.do_quantity

能否向我建议如何克服此问题?

当Python读取
PurchaseOrder
类时,它尚未定义
DeliveryOrder
,因此出现
NameError
。Django对此有一个解决方案:您使用一个包含模型名称的字符串,或者在模型位于另一个应用程序中时使用
'app\u name.ModelName'

因此,您可以通过以下方式实现这一点:

class PurchaseOrder(models.Model):
    # …
    deliveryorder = models.ForeignKey(
        'DeliveryOrder',
        on_delete=models.CASCADE
    )
    # …

class DeliveryOrder(models.Model):
    # …
    pass
类采购订单(models.Model):
# …
deliveryorder=models.ForeignKey(
“交货订单”,
on_delete=models.CASCADE
)
# …
类交货订单(models.Model):
# …
通过
因为,必须为指定一个值。文档列出了当
DeliveryOrder
与引用该字段的
PurchaseOrder
s一起删除时,hat要执行的策略