Skip to main content
 首页 » 编程设计

python之Django models.py 中的 NameError

2025年05月04日52qlqwjy

我有 5 个类(class),Customer , Supplier , Order , Design和 OutSource . Order有 3 个关系,与 Customer 一对一, 多对多 Design与 OutSourse 一对一.首先我只是添加了它s one to one relationship with客户(customer=models.ForeignKey(Customer)), now I wanna add the those 2 relationships with设计and外包`.

 design=models.ManyToManyField(Design) 
 outSource=models.OneToOneField(OutSource) 

当我这样做并运行“makemigrations”命令时,我得到了这个错误-->“NameError:name“Design”未定义” 没有这两行代码,我可以毫无问题地迁移……不知道我哪里出错了。 任何帮助将不胜感激。

模型.py

class Order(models.Model): 
    o_type=models.CharField(max_length=15, verbose_name='Order type') 
    number=models.IntegerField() 
    date=models.DateField() 
    status=models.CharField(max_length=25) 
    delivery_date=models.DateField() 
    customer=models.ForeignKey(Customer) 
    design=models.ManyToManyField(Design) 
    outSource=models.OneToOneField(OutSource) 
 
class Design(models.Model): 
    dimension=models.IntegerField() 
    image=models.ImageField(upload_to='images/%Y/%m/%d') 
    number_of_colors=models.IntegerField() 
    sides=models.IntegerField(verbose_name='side(s)') 
 
class OutSource(models.Model): 
    date=models.DateField() 
    number=models.IntegerField() 
    description=models.CharField(max_length=100) 
    code=models.IntegerField() 
    supplier=models.ForeignKey(Supplier) 

请您参考如下方法:

您在实际定义ManyToManyField 关系之后声明类Design。它找不到名称为 Design 的类,因此找不到 NameError。

在 Order 类之前声明 Design 类,事情应该适合你。