I have a model looking like this:
models.py
class CommissionElection(models.Model):
electable_time = DateRangeField()
And my form looks like this:
forms.py
class CreateCommissionElection(forms.ModelForm):
class Meta:
model = CommissionElection
fields = ['electable_time',]
Right now the electable time displays like this:
What widget is needed to make the fields datefields instead of charfields, so you can pick a date out of a calendar instead of writing it out?
You can specify a different widget for a date
field:
from django.forms.widgets import DateInput
class MyDateInput(DateInput):
input_type = 'date'
next we can make a form DateField
field for this:
from django.forms.fields import DateField
class MyDateField(DateField):
widget = MyDateInput
and reuse that in a DateRangeField
:
from django.contrib.postgres.forms.ranges import DateRangeField
class MyDateRangeField(DateRangeField):
base_field = MyDateField
then we can use this as field:
class CreateCommissionElection(forms.ModelForm):
electable_time = MyDateRangeField()
class Meta:
model = CommissionElection
fields = [
'electable_time',
]