Django JsonResponse возвращает «Необходимы параметры года и месяца», несмотря на то, что параметры присутствуют в запросPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Django JsonResponse возвращает «Необходимы параметры года и месяца», несмотря на то, что параметры присутствуют в запрос

Сообщение Гость »


Я использую «fullcalendar» и хочу отправить месяц и год в представление django и получить общее количество часов за каждый день в этом месяце из этого API: «api/get_calendar_data/», чтобы правильно отобразить календарь. Но затем я получаю неожиданный ответ, в котором говорится, что ему нужны параметры, пока они присутствуют в запросе.

Я предоставлю код, и вы получите то, что я делаю.
приборная панель.html:

calendar.js:

function updateCalendar(месяц, год) { console.log(год); console.log(месяц); $.ajax({ url: "/api/get_calendar_data/", // в мое представление django для получения данных метод: «ПОЛУЧИТЬ», data: { год: год, месяц: месяц }, // в представление django для отправки месяца и года успех: функция (данные) { // data = { '2024-02-01': 5, '2024-02-02': 7, ..} for (укажите дату в данных) { пусть часыWorked = parseFloat(данные [дата]); пусть CalendarDate = новая дата (дата); пусть formattedDate = CalendarDate.toISOString().slice(0, 10); //чтобы получить номер дня 2024-04-23 -> 23 пусть dayElement = CalendarEl.querySelector( `[data-date="${formattedDate}"]` ); если (отработано часов >= 7) { dayElement.style.backgroundColor = "#5cb85c"; //законченная работа } еще { dayElement.style.backgroundColor = "#d9534f"; //не закончено } } }, ошибка: функция (xhr, статус, ошибка) { console.error("Ошибка получения данных календаря:", error); }, }); } //инициализируем полный календарь document.addEventListener("DOMContentLoaded", function () { let CalendarEl = document.getElementById("календарь"); пусть календарь = новый FullCalendar.Calendar(calendarEl, {}); календарь.рендер(); пусть currentDate = Calendar.getDate(); пусть currentMonth = currentDate.getMonth() + 1; пусть currentYear = currentDate.getFullYear(); updateCalendar(текущийМесяц, ТекущийГод); //проходящий месяц и год }); views.py:

класс CalendarDataView(View): def get_firstday_lastday_специфический_месяц(я, год, месяц): first_day_current_month = дата (год, месяц, 1) последний_день_текущий_месяц = ​​дата(год, месяц, календарь.диапазон месяцев(год, месяц)[1]) вернуть первый_день_текущий_месяц, последний_день_текущий_месяц def get(сам, запрос): print("запрос.GET: ",запрос.GET) если «год» в request.GET и «месяц» в request.GET: пытаться: год = int(request.GET.get("год")) месяц = ​​int(request.GET.get("месяц")) print("год + месяц = ​​", год + месяц) start_date, end_date = self.get_firstday_lastday_specified_month(год, месяц) all_month_days = {str(start_date + timedelta(days=i)): 0 для i в диапазоне((end_date - start_date).days + 1)} data = ActivityLogs.objects.filter(user=request.user, date__range=[start_date, end_date]) \ .values('дата') \ .annotate(total_hours=Sum('hours_worked')) \ .order_by("дата") для элемента в данных: all_month_days[str(item['date'])] = item['total_hours'] вернуть JsonResponse(all_month_days) кроме исключения как e: return JsonResponse({'error': str(e)}, status=500) еще: return JsonResponse({'ошибка': 'Необходимы параметры года и месяца'}, status=400) URL:

path('api/get_calendar_data/',views.CalendarDataView.as_view(), name='get_calendar_data'), и единственный ответ, который я получаю:

{ "error": "Необходимы параметры года и месяца" } хотя запрос на печать в представлении печатается вместе с «год+месяц»:

request.GET: 2026 год Я просто не понимаю, почему бы не вернуть диктовку с данными зонда?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»