Как сделать Python Django HTMLCalendar кликабельным на основе даты нажатия?

Я использую учебник, который нашел в Интернете... и он работает. Я пытаюсь улучшить его так, чтобы, если пользователь нажимает на ячейку календаря, я передавал ему URL для перехода к другому представлению. Концептуально я понимаю, но не могу разобраться с конкретикой....

Вот мой utils.py

class Calendar(HTMLCalendar):
    def __init__(self, year=None, month=None, dropdown=None):
        self.dropdown = dropdown
        self.year = year
        self.month = month
        super(Calendar, self).__init__()

# formats a day as a td
# filter events by day
def formatday(self, day, requests):
    requests_per_day = requests.filter(Q(start_time__day=day,end_time__day=day) 
    ).order_by('start_time').distinct()
    d = ''
    for request in requests_per_day:
        d += f'<li> {request.get_html_url} </li>'

    if day != 0:
        return f"<td><span class='date'>{day}</span><ul> {d} </ul></td>"
    return '<td></td>'

# formats a week as a tr
def formatweek(self, theweek, requests):
    week = ''
    for d, weekday in theweek:
        week += self.formatday(d, requests)
    return f'<tr> {week} </tr>'

# formats a month as a table
# filter events by year and month
def formatmonth(self, withyear=True):
    requests = OncallRequest.objects.filter(Q(oncall_calendar=self.dropdown)).distinct()
    cal = f'<table border="0" cellpadding="0" cellspacing="0" class="calendar">\n'
    cal += f'{self.formatmonthname(self.year, self.month, withyear=withyear)}\n'
    cal += f'{self.formatweekheader()}\n'
    for week in self.monthdays2calendar(self.year, self.month):
        cal += f'{self.formatweek(week, requests)}\n'
    cal += f'</table>\n'
    cal += f'<h1 class="title107">Oncall Schedule For {self.formatmonthname(self.year, self.month, withyear=withyear)}</h1>\n'
    return cal

Вот метод, использованный выше...

@property
def get_html_url(self):
    url = reverse('OncallRequests:oncall_request_detail', args=(self.id,))
    return f'<a href="{url}"> {self.oncall_request_name} </a>'

И мой HTML

{{ calendar }}

  <a class="button20" href="{% url 'OncallCalendars:oncall_calendar_view' %}?dropdown={{dropdown}}&{{ prev_month }}"> Previous Month </a>
  <a class="button19" href="{% url 'OncallCalendars:oncall_calendar_view' %}?dropdown={{dropdown}}&{{ next_month }}"> Next Month </a>

Почти все работает... Я видел рекомендацию использовать метод и передавать day.... при нажатии на него...

Я пробовал несколько разных версий, в частности, с этой строкой...

return f"<td><a href={'Main:main_menu'}<span class='date'>{day}</span><ul> {d} </ul></a></td>"

Но это, похоже, тоже не работает... Это делает число кликабельным, но не перенаправляет страницу. Выше я не проходил... просто пытался концептуально заставить его работать с templateview...

Заранее спасибо за любые указания в нужном направлении...

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