Django - регистрация нескольких тегов шаблона в одном файле

Мне просто интересно, можно ли зарегистрировать более одного тега шаблона в одном файле, например, так:

# (project root)/templatetags/my_inclusion_tags.py

from django.template import Library
register = Library()

def func1():
    ...
    return context

def func2():
    ...
    return context

def func3():
    ...
    return context

register.inclusion_tag('templatetages/templates/template1.html', func=func1, name='tag1')
register.inclusion_tag('templatetages/templates/template2.html', func=func2, name='tag2')
register.inclusion_tag('templatetages/templates/template3.html', func=func3, name='tag3')

Я просто думаю, что это делает дерево файлов намного чище. Поскольку мои функции для тегов включения имеют длину около 10 строк, я думаю, что иметь их в отдельных файлах скорее бесполезно, чем полезно.

Мне кажется, что это должно быть возможно, хотя я не уверен, как сообщить settings.py о существовании этих тегов включения. Я пробовал несколько разных способов, но ничего не сработало, например:

# settings.py

TEMPLATES = [
    ...
    OPTIONS: {
        ...
        libraries: {
            'tags': 'templatetags.my_templatetags'
        }
    }
]

А затем импортируйте их примерно так:

{% load tags %}

или

{% load tags.tag1 %}

Но, как я уже сказал, у меня ничего не работает, и я нигде не смог найти никакой информации об этом.

Вернуться на верх