MCPcopy
hub / github.com/tortoise/tortoise-orm / to_db_value

Method to_db_value

tortoise/fields/data.py:611–638  ·  view source on GitHub ↗
(
        self,
        value: datetime.time | datetime.timedelta | None,
        instance: type[Model] | Model,
    )

Source from the content-addressed store, hash-verified

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)"

Callers

nothing calls this directly

Calls 4

to_python_valueMethod · 0.95
get_use_tzFunction · 0.90
get_default_timezoneFunction · 0.90
validateMethod · 0.80

Tested by

no test coverage detected