Перегруппировка форм Django - Как я могу перегруппировать кверисет полей формы, как я бы сделал это в шаблоне?

У меня есть Django форма для модели под названием AvailabilityRequested, которая имеет ManyToMany с другой моделью под названием Event.

class Event(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    date = models.DateField(blank=True, null=True)
    ...
  
class AvailabilityRequested(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    event = models.ManyToManyField(Event, blank=True)
    position = models.OneToOneField(JobPosition, blank=True, on_delete=models.CASCADE, related_name='availability_requested', null=True)


class AvailabilityRequestedForm(forms.ModelForm):
        class Meta:
            model = AvailabilityRequested
            fields = ['event']

        def __init__(self, *args, **kwargs):
                self.project = kwargs.pop('project')
                super(AvailabilityRequestedForm, self).__init__(*args, **kwargs)
                self.fields['event'].widget = CheckboxSelectMultiple()
                self.fields['event'].to_field_name = "event_name" #event.event_name.name
                self.fields['event'].queryset = self.project.jobproject_events.order_by('date')



Я создал форму и она работает нормально, однако теперь я пытаюсь отобразить события в AvailabilityRequestedForm определенным образом в моем шаблоне, и именно здесь возникает проблема.

Конкретно, моя цель - отобразить события, сгруппированные по дате, как на приложенной картинке.

enter image description here

Изначально мне удалось достичь своей цели, когда я не использовал формы, а просто передавал в шаблон набор дат следующим образом context['dates'] = project.jobproject_events.order_by('date') и затем использовал следующую логику шаблона

{% regroup dates by date as event_by_date %}
            <thead>
                <tr>
                    {% for date in event_by_date  %}
                    <th colspan="{{ date.list | length }}" scope="col" style="border-right: 1px solid black; text-align: center;"> {{ date.grouper }}</th>
                    {% endfor %}
                </tr>
                <tr>
                     {% for date in event_by_date  %}
                        {% for event in date.list %}
                            <th scope="col" {% if forloop.last %}style="border-right: 1px solid black;"{% endif %}>{{event.event_name.name}}</th>
                        {% endfor %}
                    {% endfor %}
                </tr>
            </thead>

Однако, когда я перешел на использование форм django, тег перегруппировки {% regroup availability_request_form.event by date as event_by_date %} больше не работает.

Ниже вы можете увидеть обе реализации на странице и увидеть, что регруппа формы не работает, в то время как подход queryset работает!

Идеи?

enter image description here

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