Ретро-контекстные процессоры в django
элемент последовательности обновления словаря #0 имеет длину 0; требуется 2
У меня есть модуль под названием context_processors, который при включении не отображается на странице входа в систему и выдает ошибку Но когда я отключаю его, появляется страница входа в систему
context_processors.py:
import datetime
from django.contrib.auth.decorators import login_required
from permission.models import UserPermission
from salemali.models import Salemali
from term.models import Term
from user.models import Branch
@login_required
def date_context_processor(request):
if request.user.is_authenticated:
current_datetime = datetime.datetime.now()
term = Term.objects.filter(status=1).order_by('-datestart')
salemali = Salemali.objects.all()
branch = Branch.objects.all()
user_permissions = UserPermission.objects.filter(user=request.user).values_list('permission__name', flat=True)
return {
'current_day': current_datetime,
'terms': term,
'salemali': salemali,
'branch': branch,
'user_permissions': user_permissions
}
setting.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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',
'dashboard.context_processors.date_context_processor',
],
},
},
]
Всегда возвращайте словарь, независимо от ситуации, если вы не хотите вводить какие-либо значения, только пустой:
# no @login_required
def date_context_processor(request):
if request.user.is_authenticated:
current_datetime = datetime.datetime.now()
term = Term.objects.filter(status=1).order_by('-datestart')
salemali = Salemali.objects.all()
branch = Branch.objects.all()
user_permissions = UserPermission.objects.filter(user=request.user).values_list('permission__name', flat=True)
return {
'current_day': current_datetime,
'terms': term,
'salemali': salemali,
'branch': branch,
'user_permissions': user_permissions
}
else:
return {}