Django中的相对导入

a8jjtwal  于 2023-08-08  发布在  Go
关注(0)|答案(2)|浏览(120)

我正在阅读Two Scoops Django Best Practices来改进我的编码风格。我是在相对导入,这里是示例代码,使其可重用。

Old Way:
from cones.foo import bar

New way:
from .foo import bar

字符串
上面的代码是为锥应用程序,如果我调用其他应用程序中的其他模型?我一定要这样说:

from .foo import bar
from .other import sample

OR

from .foo import bar
from test.other import sample


正确的方法是什么?

esbemjvw

esbemjvw1#

我通常使用这样的导入只有一个原因

from .foo import bar
from .other import sample

字符串
原因是如果明天,我的模块名称从'test'更改为'mytest',那么代码不需要重构。密码不会被破解。

更新

所有以'.'点开始的导入,只在该包内工作。跨包导入需要整个路径。

thigvfpy

thigvfpy2#

如果test是另一个应用程序,

from .other import sample

字符串
不起作用。

更新:

仅当从同一应用导入时,才能使用相对导入。
test应用程序内部

from .other import sample


可以。但你还是需要完整的表格

from cones.foo import bar


如果您从test应用程序导入foo中定义方法,
所以用第二种方式回答你的问题才是正确的。

相关问题