django models交叉引用问题的解决方案

项目中如果存在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") 

这样就可以避免相应的问题了。
————————————————
版权声明:本文为CSDN博主「snrtitfk」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/snrtitfk/article/details/38321175

本文链接:

https://www.zaigie.com/archives/386/