When time zone support is enabled, convert naive datetimes entered in the current time zone to aware datetimes.
(value)
| 213 | |
| 214 | |
| 215 | def from_current_timezone(value): |
| 216 | """ |
| 217 | When time zone support is enabled, convert naive datetimes |
| 218 | entered in the current time zone to aware datetimes. |
| 219 | """ |
| 220 | if settings.USE_TZ and value is not None and timezone.is_naive(value): |
| 221 | current_timezone = timezone.get_current_timezone() |
| 222 | try: |
| 223 | if timezone._datetime_ambiguous_or_imaginary(value, current_timezone): |
| 224 | raise ValueError("Ambiguous or non-existent time.") |
| 225 | return timezone.make_aware(value, current_timezone) |
| 226 | except Exception as exc: |
| 227 | raise ValidationError( |
| 228 | _( |
| 229 | "%(datetime)s couldn’t be interpreted " |
| 230 | "in time zone %(current_timezone)s; it " |
| 231 | "may be ambiguous or it may not exist." |
| 232 | ), |
| 233 | code="ambiguous_timezone", |
| 234 | params={"datetime": value, "current_timezone": current_timezone}, |
| 235 | ) from exc |
| 236 | return value |
| 237 | |
| 238 | |
| 239 | def to_current_timezone(value): |
no test coverage detected