Как установить время по умолчанию в Django ModelForm

Я создал Django ModelForm.

Вот файл models.py

class Room(models. Model):
    available_from = models.TimeField()
    available_till = models.TimeField()

Вот файл forms.py

class RoomForm(forms.ModelForm):

    class TimeInput(forms.TimeInput):
        input_type = 'time'

    available_from = forms.TimeField(
        widget=TimeInput(),
        )

    available_till = forms.TimeField(
        widget=TimeInput(),
        )


    class Meta:
        model = Room
        fields = ['available_from','available_till']

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

Вы можете указать в модели значение по умолчанию, если хотите сделать это для всех форм/admins/..., которые являются производными от этой модели:

from datetime import time


class Room(models. Model):
    available_from = models.TimeField(default=time(2))
    available_till = models.TimeField()

или, если это специфично для данной формы, вы можете использовать initial=… параметр [Django-doc]:

from datetime import time


class TimeInput(forms.TimeInput):
    input_type = 'time'

class RoomForm(forms.ModelForm):
    available_from = forms.TimeField(
        widget=TimeInput(),
        initial=time(2)
    )
    
    class Meta:
        model = Room
        fields = ['available_from','available_till']
        widgets = {'available_till': TimeInput}
Вернуться на верх