Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Date format changes on UpdateView in Django

I have a form to create an object where the date input format is 'dd/mm/yyyy', when I submit the form, it is saved without any problem, but when I edit this object, the date shows as 'yyyy-mm-dd'.

settings.py

DATE_INPUT_FORMATS = ('%d/%m/%Y')

forms.py

class MyForm(forms.ModelForm):

    created_date = forms.DateField(input_formats=['%d/%m/%Y',],
    widget=forms.DateInput(attrs={'class':'datepicker form-control', 'placeholder':'Select a date'}), required=False)

models.py

created_date = models.DateField(blank=True, null=True, verbose_name="Created on")

views.py

class MyEdit(SuccessMessageMixin, UpdateView):
    model = MyModel
    form_class = MyForm
    template_name_suffix = '_edit'
    success_message = '...'

and in my template I use

$(".datepicker").datepicker({
    format: 'dd/mm/yyyy',
    autoclose: true,
    changeYear: true,
    changeMonth: true
  });
like image 412
robtus88 Avatar asked Nov 05 '25 21:11

robtus88


1 Answers

Remember that the field is responsible for validation, but it is the widget that is responsible for displaying the value. So you need to pass format there too:

widget=forms.DateInput(attrs={'class':'datepicker form-control', 'placeholder':'Select a date'}), required=False, format='%d/%m/%Y')
like image 82
Daniel Roseman Avatar answered Nov 07 '25 10:11

Daniel Roseman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!