Предварительное заполнение полей даты и времени формы, созданной с помощью SplitDateTimeWidget

Для событий я храню даты начала и окончания события с помощью DateTime. Для создания события я использовал SplitDateTimeWidget для разделения даты и времени в форме. все в порядке! Но для редактирования события я не могу найти, как предварительно заполнить поля даты и времени в форме редактирования, они остаются пустыми

models.py

class Event(models.Model):
"""
Model of the "contents_event" table in the database
"""
category = models.CharField(max_length=30, choices=EVENT_CATEGORY, default=MISCELLANEOUS, verbose_name='Catégorie')
title = models.CharField(blank=False, max_length=100, verbose_name='Titre')
content = models.TextField(blank=False, verbose_name='Evènement')
start_date = models.DateTimeField(verbose_name='Début de l\'évènement')
end_date = models.DateTimeField(verbose_name='Fin de l\'évènement')
status = models.CharField(max_length=30, choices=CONTENT_STATUS, default=ACTIVATED, verbose_name='Statut')
last_edit = models.DateTimeField(auto_now=True, verbose_name='Dernière modification')
creation_date = models.DateTimeField(auto_now_add=True, verbose_name='Publication le')
photos = models.ManyToManyField(Photo, blank=True)
uuid = models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID')
author = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='Auteur', related_name='create_events')

def __str__(self):
    return f'Evènement - {self.title}'

def display_author(self):
    """Create a string for the author. This is required to display author in Admin."""
    return self.author.get_full_name()

display_author.short_description = 'Auteur'

class Meta:
    verbose_name_plural = "events"

forms.py :

class EventForm(ModelForm):
"""
Form used for create an event
"""
start_date = SplitDateTimeField(
    label='Début de l\'évènement (Date / Heure)',
    widget=widgets.SplitDateTimeWidget(
        date_attrs={'type': 'date', 'style': 'width:25%;'},
        time_attrs={'type': 'time', 'style': 'width:25%;'},
        date_format='%d/%m/%Y',
        time_format="'%H:%M'"),
)
end_date = SplitDateTimeField(
    label='Fin de l\'évènement (Date / Heure)',
    widget=widgets.SplitDateTimeWidget(
        date_attrs={'type': 'date', 'style': 'width:25%;'},
        time_attrs={'type': 'time', 'style': 'width:25%;'},
        date_format='%d/%m/%Y',
        time_format="'%H:%M'"),
)
class Meta: 
    model = models.Event
    fields = ('category', 'title', 'content', 'start_date', 'end_date', 'status', )

views.py :

def event_update_view(request, uuid):
event = Event.objects.get(uuid=uuid)
event_data = {
    'category': event.category,
    'title': event.title,
    'content': event.content,
    'start_date': event.start_date,
    'end_date': event.end_date,
    'status': event.status,
}
event_form = EventForm(initial=event_data)
event_update_form = EventUpdateForm()
photo_form = PhotoForm()

if request.method == 'POST':
    event_form = EventForm(request.POST, instance=event)
    event_update_form = EventUpdateForm(request.POST)
    photo_form = PhotoForm(request.POST, request.FILES)
    if all([event_form.is_valid() and event_update_form.is_valid() and photo_form.is_valid()]):
        event = event_form.save()
        event_update = event_update_form.save(commit=False)
        event_update.event = event
        event_update.updater = request.user
        event_update.save()
        photo = photo_form.save(commit=False)
        photo.uploader = request.user
        photo.save()
        event.photos.add(photo)
        event.save()
        messages.success(request, NEWS_UPDATE_SUCCESS) # Adding a confirmation message
        return redirect('event-detail', uuid=event.uuid)

context = {
    'event': event,
    'event_form': event_form,
    'event_update_form': event_update_form,
    'photo_form': photo_form,
}
        
return render(request, 'contents/event_update.html', context=context)

Кто-нибудь делал это раньше?

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