Django TemplateSyntaxError-'staticfiles'不是注册的标记库

时间:2019-04-30 22:31:47

标签: python django django-templates django-3.0

升级到Django 3.0后,我得到以下value = (value ? 0 : 1) - value;

TemplateSyntaxError

这是我的模板

In template /Users/alasdair//myproject/myapp/templates/index.html, error at line 1
'staticfiles' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz

5 个答案:

答案 0 :(得分:8)

  • 尝试用{% load static %}代替{% load staticfiles %}
  • 如果CSS或任何其他文件的效果未反映在模板中,请在settings.py文件末尾写以下行
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
VENV_PATH = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(VENV_PATH, 'static_root')

答案 1 :(得分:5)

这对我使用 django 3.1.4 有效。

{% load static %}
<link rel"stylesheet" href = "{% static 'style.css' %}">

答案 2 :(得分:2)

这与我合作,将{% load static from staticfiles %}替换为{% load static %}

其中:

转到您的虚拟环境“ venv” /目录中的/lip/python3.X/site-packages/leaflet/templates/leaflet/admin/widget.html和所有。 HTML 文件

答案 3 :(得分:2)

注册静态文件到标签库

staticfiles 已更改为 static

您可以使用setting.py中的空闲代码进行注册

在您的 TEMPALTE 设置中添加此代码


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            'libraries' : {
                'staticfiles': 'django.templatetags.static', 
            }
        },
    },
]

注意你可以找到你没有的图书馆

答案 4 :(得分:0)

{% load staticfiles %}{% load adminstatic %}分别是deprecated in Django 2.1removed in Django 3.0

如果模板中包含以下任何内容:

{% load staticfiles %}
{% load static from staticfiles %}
{% load adminstatic %}

您应该将标签替换为:

{% load static %}