我的django项目中有两个应用程序(app1和app2)。
我很好奇是否有办法在应用程序之间导入内容。
baseProject
--app1
----models.py
----etc..
--app2
----models.py
----etc..
我希望能够在app2中从app1的models部分导入一些东西。是否有预期的方法来做到这一点,或者我计划糟糕的架构。
答案 0 :(得分:5)
你绝对可以这样做,只需照常导入即可。许多身份验证/注册相关的应用程序从Django附带的“django.contrib.auth”应用程序导入模型。无论你是否写过,都可以从任何应用程序中自由导入。
您只需要确保应用程序在您的PYTHONPATH上,以便可以导入它们。
也就是说,在跨应用程序导入内容之前考虑您的设计总是好的。确保您没有创建应用程序之间存在循环依赖关系的情况。
答案 1 :(得分:1)
你提出的是好的和公认的做法。从app2开始,您只需执行:from app1.models import SomeModel
。例如,您可能习惯于从User
应用导入django.contrib.auth
模型。这是django应用程序可重用性的预期好处的一部分。