(
self,
value: datetime.time | datetime.timedelta | None,
instance: type[Model] | Model,
)
| 609 | return value |
| 610 | |
| 611 | def to_db_value( |
| 612 | self, |
| 613 | value: datetime.time | datetime.timedelta | None, |
| 614 | instance: type[Model] | Model, |
| 615 | ) -> datetime.time | datetime.timedelta | None: |
| 616 | # Only do this if it is a Model instance, not class. Test for guaranteed instance var |
| 617 | if hasattr(instance, "_saved_in_db") and ( |
| 618 | self.auto_now |
| 619 | or (self.auto_now_add and getattr(instance, self.model_field_name) is None) |
| 620 | ): |
| 621 | now = timezone.now().time() |
| 622 | # Convert to match what would be read from DB (apply timezone conversion) |
| 623 | now_python = self.to_python_value(now) |
| 624 | setattr(instance, self.model_field_name, now_python) |
| 625 | return now |
| 626 | if value is not None: |
| 627 | if isinstance(value, datetime.timedelta): |
| 628 | return value |
| 629 | if get_use_tz(): |
| 630 | if timezone.is_naive(value): |
| 631 | warnings.warn( |
| 632 | f"TimeField {self.model_field_name} received a naive time ({value})" |
| 633 | " while time zone support is active.", |
| 634 | RuntimeWarning, |
| 635 | ) |
| 636 | value = value.replace(tzinfo=get_default_timezone()) |
| 637 | self.validate(value) |
| 638 | return value |
| 639 | |
| 640 | class _db_mysql: |
| 641 | SQL_TYPE = "TIME(6)" |
nothing calls this directly
no test coverage detected