我正在和PyCharm一起开展Django项目.不幸的是,PyCharm无法解析我想在模板中使用的模板标签.
{% load staticfiles %}
该项目通过vagrant在Ubuntu VM中运行.运行配置知道我在VM中使用的virtualenv(远程解释器设置).
我的设置如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.humanize', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.flatpages', 'django_extensions'] INSTALLED_APPS += get_core_apps(['myapp.dashboard') STATICFILES_FINDERS = ( 'compressor.finders.CompressorFinder', 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder', ) STATIC_URL = '/static/' BASE_DIR = os.path.dirname(os.path.abspath(__file__)) STATICFILES_DIRS = ( os.path.join(BASE_DIR, '../../../../myfolder/static'), )
我仍然收到警告Unresolved library 'staticfiles'
.它也显示了与其他模板标签相同的行为.动态创造是否STATICFILES_DIRS
可以成为问题?我该怎么解决这个问题?
在我的情况下,这发生在PyCharm找不到settings.py文件时.这是因为我有 - local_setting,prod_setting等.所以我去文件 - >设置 - >语言和Framworks - > Django - >设置,并选择适当的文件与django项目的设置.
事实证明,INSTALLED_APPS
以某种方式混淆PyCharm 的动态创造.它无法解析某些依赖项,例如template_tags
if是否是动态创建的.似乎必须决定是否有一个很好的代码导航或静态INSTALLED_APPS
.
看起来PyCharm寻找INSTALLED_APPS的最后一个分配来查找模板标签.我遇到了类似的问题,能够在动态生成真正的INSTALLED_APPS之后解决这个问题:
if False: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.staticfiles', 'autocomplete_light', 'django.contrib.admin', 'django.contrib.humanize', 'comunes', 'listados', 'gescomercial', 'contabilidad', 'compras', 'almacen')
不漂亮,但由于这个settings.py仅用于开发机器,我可以使用它.