posting date in dd-mm-YYYY format in django rest framework

Viewed 1819

I have set my Date_INPUT_FORMATS = "%d-%m-%Y" in settings.py file. Below is my settings File -

    REST_FRAMEWORK = {
    'DATE_INPUT_FORMATS': "%d-%m-%Y",
    'DATE_FORMAT': "%d-%m-%Y",
    'DATETIME_FORMAT': "%d-%m-%Y %H:%M:%S",
}

I have a model with joining date As below :

class Employee(models.Model):
    joiningDate = models.DateField()
    name = models.CharField(max_length=50)

My Serializer :

class EmployeeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Employee
        fields = ['joiningDate', 'name']

Viewset :

class EmployeeViewSet(ModelViewSet):
    queryset = models.Employee.objects.all()
    serializer_class = serializers.EmployeeSerializer

This is the json I am trying to post:

{
    "joiningDate":"31-03-2020",
    "name":"EMpname",

I think I have set it up correctly but while posting I am getting the following Error:

"joiningDate": [ "Date has wrong format. Use one of these formats instead: %, d, -, %, m, -, %, Y." ]

Can anyone guide me in the right direction? What did I miss? Thanks a lot in advance for your responses

1 Answers

According to the documentation, DATE_INPUT_FORMATS must be a list:

REST_FRAMEWORK = {
    "DATE_INPUT_FORMATS": ["%d-%m-%Y"],
    ...
}
Related