(self, value)
| 1518 | return "DateField" |
| 1519 | |
| 1520 | def to_python(self, value): |
| 1521 | if value is None: |
| 1522 | return value |
| 1523 | if isinstance(value, datetime.datetime): |
| 1524 | if settings.USE_TZ and timezone.is_aware(value): |
| 1525 | # Convert aware datetimes to the default time zone |
| 1526 | # before casting them to dates (#17742). |
| 1527 | default_timezone = timezone.get_default_timezone() |
| 1528 | value = timezone.make_naive(value, default_timezone) |
| 1529 | return value.date() |
| 1530 | if isinstance(value, datetime.date): |
| 1531 | return value |
| 1532 | |
| 1533 | try: |
| 1534 | parsed = parse_date(value) |
| 1535 | if parsed is not None: |
| 1536 | return parsed |
| 1537 | except ValueError: |
| 1538 | raise exceptions.ValidationError( |
| 1539 | self.error_messages["invalid_date"], |
| 1540 | code="invalid_date", |
| 1541 | params={"value": value}, |
| 1542 | ) |
| 1543 | |
| 1544 | raise exceptions.ValidationError( |
| 1545 | self.error_messages["invalid"], |
| 1546 | code="invalid", |
| 1547 | params={"value": value}, |
| 1548 | ) |
| 1549 | |
| 1550 | def pre_save(self, model_instance, add): |
| 1551 | if self.auto_now or (self.auto_now_add and add): |
no test coverage detected