最近使用Python + Django,是一个巨复杂的系统,才几天就40多张数据库的表了。因为在Django里面,表都使用类来实现的,所以就要一开始写很多的class,语法都没问题,但是有时候就会出现ImportError Can not import name xxxx
这个问题遇见了两次,稍微有点差别,现在记录一下来。
1.类之间的循环依赖
代码大致是这样的
class Employee(models.Model):
permission = models.ManyToManyField(Permission)
class Permission(models.Model):
dealer = models.ForeiginKey(Dealer)
name = models.CharField(max_length=20)
class Dealer(models.Model):
employees = models.ManyToManyField(Employee)
这样,Employee依赖Permission,Permission依赖Dealer,Dealer又会回到Employee,这样肯定就是错误的了。
2.不同模块之间的
Service.model 模块
from Appointment.models import Appointment
class Order(models.Model):
appointment = models.ForeignKey(Appointment)
在Appointment.models里面
from Service