Проблема с календарем вакансий в Django

У меня проблема с моим приложением. Я хочу добавить дату отпуска сотрудника в календарь, но когда я ставлю дату, отображается только первая дата (см. фото 1). Я бы хотел, чтобы сотрудник отображал каждый день. В моем примере я добавил с 9 по 12 ноября. Есть ли у кого-нибудь решение?

------- Models.p -------

class Conger(models.Model):
    employe = models.ForeignKey(Employe, null=True, on_delete=models.SET_NULL)
    Type = models.CharField(max_length=40, null=True)
    Annee = models.PositiveIntegerField(null=True)
    Date = models.DateField("Du: (jj/mm/aaaa)", auto_now_add=False, auto_now=False, blank=True, null=True)
    Date2 = models.DateField("Au: (jj/mm/aaaa)", auto_now_add=False, auto_now=False, blank=True, null=True)
    Raison = models.CharField(max_length=200, null=True)
    Superviseur = models.CharField(max_length=60, null=True)
    Approuver = models.BooleanField(default=False)
    data_created = models.DateTimeField(auto_now_add=True, null=True)

    @property
    def get_html_url(self):
        url = reverse('conger')
        return f'<a href="{url}"> {self.employe.Prenom, self.employe.Nom} </a>'

------- utils.py -------

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

    # formats a day as a td
    # filter events by day
    def formatday(self, day, events):
        events_per_day = events.filter(Date__day=day)
        d = ''
        for event in events_per_day:
            d += f'<li> {event.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, events):
        week = ''
        for d, weekday in theweek:
            week += self.formatday(d, events)
        return f'<tr> {week} </tr>'

    # formats a month as a table
    # filter events by year and month
    def formatmonth(self, withyear=True):
       events = Conger.objects.filter(Date__year=self.year, Date2__month=self.month)

        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, events)}\n'
        return cal

------- Forms.py ------

class EventForm(ModelForm):
    class Meta:
        model = Conger
        fields = '__all__'

    Date = forms.DateField(label="Du", widget=NumberInput(attrs={'type': 'date'}))
    Date2 = forms.DateField(label="Au", widget=NumberInput(attrs={'type': 'date'}))

    def __init__(self, *args, **kwargs):
        super(EventForm, self).__init__(*args, **kwargs)
    # input_formats parses HTML5 datetime-local input to datetime field
        self.fields['Date'].input_formats = ('%Y-%m-%d',)
        self.fields['Date2'].input_formats = ('%Y-%m-%d',)

Calendar Event

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