【发布时间】:2017-11-12 06:09:27
【问题描述】:
我对这个问题束手无策,希望得到一些帮助来解决这个问题。
我有一个 Django 项目,里面有很多子应用:
my_project/
manage.py
my_project/
settings.py
urls.py
wsgi.py
app_root/
__init__.py
app1/
__init__.py
models.py
views.py
urls.py
templates/
[various templates].html
app2/
__init__.py
models.py
[etc]
app3/
[etc]
在我的 django settings.py 中,我已经安装了这样的应用程序:
app_root.app1,
app_root.app2,
在 PyCharm 中,我尝试了各种方法,但基本上将 Content Root 作为顶部的“my_project/”,并将 app_root、app1、app2 等作为 Source Root。我试过只将app_root 作为唯一的源根,我也试过只将app1、app2 等作为源根,但没有任何区别。
一切正常。应用程序运行和一切。但是,PyCharm 无法解析我的应用程序。
但是,如果我尝试这个:
import app_root
...
def some_function(self):
app_root.app1.models.My_Model.objects.all()
它将突出显示 app1 并显示错误“在 'init.py' 中找不到引用 'app1'”
这也意味着它在执行app_root.app1. 时无法在路径中的任何位置执行自动完成 - 尽管每个目录中都有(空的)__init__.py,但它不知道模型、视图等。
我也不能使用任何重构,因为它总是说“函数不在源根目录下”
我花了无数个小时试图让 PyCharm 正常运行,但根本找不到方法。有什么办法可以做到这一点,以便 PyCharm 自动完成我的应用程序而不是继续发出检查警告?
【问题讨论】: