我对这个问题束手无策,希望能得到一些帮助来解决这个问题。
我有一个 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 等作为源根。我试过只将 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,但它不知道模型、 View 等
在每个目录中。
我也不能使用任何重构,因为它总是说“函数不在源代码根目录下”
我花了无数个小时试图让 PyCharm 正常运行,但就是找不到实现它的方法。有什么方法可以做到这一点,以便 PyCharm 自动完成我的应用程序,而不是继续发出检查警告?
最佳答案
我有一些类似的问题。我的解决方案;在 PyCharm 首选项中,我在事件的 Python 解释器中添加了一个指向 app_root
的路径。
关于django - PyCharm 无法使用 Django 项目应用解析 __init__.py 中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033255/