我正在使用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
会成为问题吗?我怎么能解决这个问题?
答案 0 :(得分:17)
在我的情况下,这发生在PyCharm找不到settings.py文件时。这是因为我有 - local_setting,prod_setting等所以我去了File - >设置 - >语言与Framworks - > Django - >设置并选择适当的文件并设置django项目。
答案 1 :(得分:7)
事实证明,INSTALLED_APPS
的动态创造会以某种方式混淆PyCharm。如果动态创建这些依赖项,则无法解析某些依赖项,例如template_tags
。似乎必须决定是否有一个很好的代码导航或静态INSTALLED_APPS
。
答案 2 :(得分:6)
看起来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仅用于开发机器,我可以使用它。
答案 3 :(得分:1)
使用PyCharm 2019.2
,一旦在Django首选项配置面板中正确指向settings.py
,我就需要使缓存无效并重新启动,直到Pycharm正确识别所有模板标签库为止,即使我的{{1} }是动态构建的。
答案 4 :(得分:1)
降低Django版本。我的情况和你一样。设置中的配置正确,但仍提示“未解析的库'静态文件'。此后,我降低Django版本。PIP安装Django = = 2.1.7。问题已解决。希望对您有所帮助< / p>