Ошибка в кодовом сервере django, работающем на локальном сервере (Невозможно преобразовать ключевое слово 'jan' в поле)
Я использую приведенный ниже код в Django. В локальном режиме он работает без ошибок. Однако, когда я загружаю тот же код на сервер, возникает ошибка.
def get_last_day_of_month(day):
next_month = day.replace(day=28) + timedelta(days=4)
return next_month - timedelta(days=next_month.day)
def statistic(request):
parameter = request.GET.get('team')
today = datetime.today()
monthly_kwargs = {}
for i in range(1, 13):
gte = datetime(today.year, i, 1)
lte = get_last_day_of_month(date(today.year, i, 1))
mo = f'{gte:%b}'.lower()
monthly_kwargs[mo] = Count('student_id', filter=Q(enroll_date__gte=f'{gte:%Y-%m-%d}', enroll_date__lte=f'{lte:%Y-%m-%d}'))
monthly_kwargs['SPECIAL_' + mo] = Count('student_id', filter=Q(enroll_date__gte=f'{gte:%Y-%m-%d}', enroll_date__lte=f'{lte:%Y-%m-%d}', student__id__in=SPECIAL))
monthly_kwargs['total'] = Count('student_id', filter=Q(enroll_date__year=today.year))
monthly_kwargs['SPECIAL_total'] = Count('student_id', filter=Q(enroll_date__year=today.year, student__id__in=SPECIAL))
value_list_args = ['uploader_id', 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec', 'total',
'SPECIAL_jan', 'SPECIAL_feb', 'SPECIAL_mar', 'SPECIAL_apr', 'SPECIAL_may', 'SPECIAL_jun', 'SPECIAL_jul', 'SPECIAL_aug', 'SPECIAL_sep', 'SPECIAL_oct', 'SPECIAL_nov', 'SPECIAL_dec', 'SPECIAL_total']
if not request.GET or parameter == 'ALL':
monthly_enroll = Feedback.objects \
.values('uploader_id').distinct() \
.order_by('uploader_id') \
.annotate(**monthly_kwargs) \
.values_list(*value_list_args) \
.order_by('uploader_id')
else:
monthly_enroll = Feedback.objects \
.values('uploader_id').distinct() \
.order_by('uploader_id') \
.annotate(**monthly_kwargs) \
.values_list(*value_list_args) \
.order_by('uploader_id')
monthly_enroll_list = [list(i)[0:27] for i in monthly_enroll]
return render(request, 'pages/research/statistic.html',
{
'parameter': parameter,
'monthly_enroll_list': monthly_enroll_list,
})
Ошибка: Невозможно преобразовать ключевое слово 'jan' в поле. Варианты: SPECIAL_total, student, memo, total. Если внимательно посмотреть на ошибку, кажется, что переменная 'monthly_kwargs[mo]' установлена неправильно. Я вижу, что для выбора доступны только поля 'total' и 'SPECIAL_total'.
Что случилось?