在Django项目中两个应用之间导入
我在我的Django项目里有两个应用程序(app1和app2)。
我想知道有没有办法在这两个应用之间导入东西。
baseProject
--app1
----models.py
----etc..
--app2
----models.py
----etc..
我希望在app2里能够从app1的模型部分导入一些东西。请问这样做有没有什么特别的方法,还是说我在设计上有问题呢?
2 个回答
1
你提议的做法是可以的,也是大家都认可的。比如在app2里,你可以直接写:from app1.models import SomeModel
。举个例子,你可能已经习惯从django.contrib.auth
这个应用里导入User
模型。这就是django应用可重复使用的一个好处。
6
你完全可以这样做,只需像往常一样导入就行。很多和认证或注册相关的应用都会从Django自带的“django.contrib.auth”应用中导入模型。无论是你自己写的应用,还是别人写的,你都可以自由导入。
你只需要确保这些应用在你的PYTHONPATH中,这样才能被导入。
不过,在跨应用导入东西之前,考虑一下你的设计总是好的。确保你不会造成应用之间的循环依赖问题。