项目中如果存在A model 中的属性引用了 B,B model的属性引用了A,那在项目启动时会出现model A无法导入的问题。
解决方案也比较简单不要直接引用model B,而是引用包名加类名就可以解决这个问题。
比如 model Rank的包名为rank,其中属性create_user 引用了 model Staff
create_user = models.ForeignKey(Staff,verbose_name="创建用户",related_name="rank_create_by_me")
而model Staff中的属性 rank 需要 引用 Rank。
rank = models.ForeignKey(Rank,related_name="my_rank")
这种引用方式在启动时Staff肯定会出现无法找到的错误,所以得用
rank = models.ForeignKey('rank.Rank',related_name="my_rank")
这样就可以避免相应的问题了。