          if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
              self.fail('date')
  
          if isinstance(value, datetime.datetime):
              return self.enforce_timezone(value)
  
          for format in self.input_formats:
              if format.lower() == ISO_8601:
                  try:
                      parsed = parse_datetime(value)
 
</s> remove         if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
            self.fail('date')

 </s> add  </s> remove                     parsed = parse_date(value)
 </s> add                     parsed = parse_datetime(value) </s> remove                     parsed = parse_datetime(value)
 </s> add                     parsed = parse_date(value) </s> remove         self.default_timezone = default_timezone if default_timezone is not None else self.default_timezone
        super(DateTimeField, self).__init__(*args, **kwargs)

    def enforce_timezone(self, value):
        """
        When `self.default_timezone` is `None`, always return naive datetimes.
        When `self.default_timezone` is not `None`, always return aware datetimes.
        """
        if (self.default_timezone is not None) and not timezone.is_aware(value):
            return timezone.make_aware(value, self.default_timezone)
        elif (self.default_timezone is None) and timezone.is_aware(value):
            return timezone.make_naive(value, timezone.UTC())
        return value
 </s> add         super(DateField, self).__init__(*args, **kwargs) </s> remove         if isinstance(value, datetime.datetime):
            value = value.date()

 </s> add 
            self.fail('datetime')

        if isinstance(value, datetime.date):
            return value
          if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
              self.fail('date')
  
          if isinstance(value, datetime.datetime):
            self.fail('datetime')

        if isinstance(value, datetime.date):
            return value
  
          for format in self.input_formats:
              if format.lower() == ISO_8601:
                  try:
                      parsed = parse_datetime(value)
keep keep keep keep replace keep keep keep keep keep
 Refuse to downcast from datetime to date or time 
rest_framework/fields.py