TemplateSyntaxError“apptags”不是已注册的标签库

Nav*_*kur 1 python django django-templates web-development-server django-custom-tags

我在 templatetag 文件夹内的 apptags.py 文件中创建了一个自定义模板标签,而 templatetag 文件夹位于我的应用程序文件夹内,代码如下

from django import template
import datetime
register=template.Library()
@register.simple_tag(name="get_date")
def get_date():
    now = datetime.datetime.now()
    return now
Run Code Online (Sandbox Code Playgroud)

我在我的 html 文件中使用它作为

% load static %}
{% load apptags %}
{% get_date as today %}
<h2>Today is {{today}} </h2>
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

/exam/show-test/ 'apptags' 处的 TemplateSyntaxError 不是已注册的标签库。必须是以下之一: admin_list admin_modify admin_urls cache i18n l10n log static tz

PS:- Templatetag 是一个包,因为我在其中创建了一个init .py 文件

Ram*_*Ram 5

您需要在项目settings.py文件中添加模板标签,以便 Django 识别它。

将其添加到您的文件中的OPTIONS条目中:TEMPLATESsettings.py

'libraries':  {
                '<template_tag name>': '<App_name>.templatetags.<template_tag name>',
            }
Run Code Online (Sandbox Code Playgroud)

例子:

'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':  {
                'dict_key': 'blogs.templatetags.dict_key',
            }
Run Code Online (Sandbox Code Playgroud)