Я не знаю, возможно ли обмениваться значениями из пользовательских тегов между различными шаблонами, поэтому извините, если это не совсем соответствует вашим спецификациям.
Но когда мне нужно было передать различные переменные вшаблон дифференциалов Я использовал пользовательский context_processor: вы можете определить вашу контекстную переменную в файле, подобном my_app.context_processors.py '
from django.conf import settings
from my_app.models import Authorization
def custom_contexts(request):
try:
user_level_projects = Authorization.get_user_level_projects(request.user)
except Exception:
user_level_projects = {}
# you can put here dynamics or constants data that will be accessible via the
# standard template syntaxes: ex -> {{ FILE_MAX_SIZE }}
return {
'APPLICATION_NAME': settings.APPLICATION_NAME,
'LOGO_PATH': settings.LOGO_PATH,
'APPLICATION_ABSTRACT': settings.APPLICATION_ABSTRACT,
'IMAGE_FORMAT': settings.IMAGE_FORMAT,
'FILE_MAX_SIZE': settings.FILE_MAX_SIZE,
'USER_LEVEL_PROJECTS': user_level_projects
}
, затем вам нужно добавить этот новый context_processor в ваш файл settings.py1006 *
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',
'my_app.context_processors.custom_contexts',
],
},
},
]
Примечание: в этом примере USER_LEVEL_PROJECTS на самом деле является словарем, но это может быть что-то еще. Я не могу найти, где в документе я нашел это, но я уверен, что вы найдете больше информации.