[Answer]-Django – Date and Time Field Explanation

1πŸ‘

βœ…

For first question, datefield saves date object and if you are saving any data( for example a string: β€œ01-01-2015”) to datefield, then you have to convert that data into date object. You will not get a date object in request.POST, if you use a form, then you can get it by using cleaned_data.(example below) From request.POST ,you will get an unicode object.( then you will need to convert it to date object, example below)

For second question, obviously you have to save dateobject, not unicode object.

For third question, in forms, To display initial field value properly formatted, use DateInput widget. To customize validation, use input_formats keyword argument of DateField. Here, from forms, you will get a date object in views, so it can be saved directly, like:

In model.py:

class DateModelClass(models.Model):
    date= models.DateField()

In forms.py:

date= forms.DateField(widget=forms.DateInput(format = '%d/%m/%Y'), input_formats=('%d/%m/%Y',))

In views.py:

date_data= DateModelClass(date= form.cleaned_data['date'])
date_data.save()

Also you can convert a string of your desired format to Date Object like this:

>>import datetime
>>datetime.datetime.strptime(u"09/07/2014", '%d/%m/%Y').date()
πŸ‘€ruddra

Leave a comment