Djang中所有应用程序共享的菜单

2024-05-21 05:11:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django>;1.9中构建了一个menu作为templatetag。 问题是,在solution之后,我不能将templatetag放在文件夹的根目录,因为我得到了一个:

TemplateSyntaxError: 'menu' is not a registered tag library

以下是我修改的settings.py部分:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # Look for base template at root of project
        'DIRS': [os.path.join(BASE_DIR, 'templates'), ],
        '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',
            ],
            # Look for base templatetags at root of project
            'libraries': {
                'project_tags': 'templatetags.menu',
            }
        },
    },
]

即使使用空的menu.py模板标记,我也会得到相同的错误:

^{pr2}$

Django是否支持项目范围内的templatetags?在


Tags: djangopyprojectforbasecontexttemplateroot
1条回答
网友
1楼 · 发布于 2024-05-21 05:11:10

我通过在我的base.html模板中加载模块(即project_tags)而不是标记(即menu),然后正常调用标记menu

所以它是

{% load project_tags %}
...
{% menu %}

而不是:

^{pr2}$

相关问题 更多 >