PyCharm自动导入忽略Django项目名称。

4

PyCharm可以自动导入未找到的类...例如,如果我输入了一个方法名或类名,在当前文件中找不到,PyCharm可以自动添加一个导入语句。然而,问题在于自动导入会忽略当前Django项目的名称...

例如:

你的Django项目名为myproject,当前应用程序为myapp。你在models.py中有一个名为MyModel的类。

如果你在某个地方输入了"MyModel",自动生成的导入语句将是:

from myapp.models import MyModel

然而,我希望它能够变成:

from myproject.myapp.models import MyModel

有人有任何想法如何解决这个问题吗?
1个回答

2

在导入中包含项目名称是一种不好的做法。这会使您的应用程序难以重复使用。如果您想要更改项目名称,那么您将无法轻松地进行更改。像ep.io这样的托管服务甚至要求不要在导入中使用项目名称。据我所知,您无法更改PyCharm中的此类导入行为。您可以尝试在他们的bugtracker上提出请求,但我怀疑它是否会被实现。


你的观点很有道理,我只是担心污染命名空间,但我想我应该使用更独特的应用程序名称?不过,我看了Django的示例,它们似乎也只导入应用程序名称,而不是项目.应用程序名称。感谢您的帮助! - zeraien
看来我的乐观是过早的。直接导入应用程序名称被证明是一个冒险的建议,特别是如果使用的应用程序名称不是唯一的。例如,我有一个名为sync的应用程序,还有每个应用程序中都有一个名为sync的文件。也许这是个糟糕的选择,但它迫使我将所有我的同步模块和同步文件与project_name.sync一起导入,问题在于当你尝试捕获异常时,它们无法被识别,因为你不小心混淆了“from project_name.foo import ...”和“from foo import ...”。这就造成了噩梦! - zeraien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接