Python 名称错误:名称';交货订单';没有定义
在这里,我试图将deliveryorder作为ForeignKey调用到PurchaseOrder表中。一旦运行makemigrations,就会显示上面的错误。此外,我无法在DeliveryOrder之后编写PurchaseOrder定义,因为DeliveryOrder表也将PurchaseOrder作为ForeignKey保存 采购订单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
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要执行的策略