python-django-timezone-field
Port variant py311
Summary Django app that provides timezone info (3.11)
Package version 5.0
Homepage https://github.com/mfogel/django-timezone-field/
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants py310
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 01 JAN 2023, 17:21:46 UTC
Port created 01 JAN 2023, 17:21:46 UTC
Subpackage Descriptions
single # django-timezone-field [CI] [codecov] [pypi downloads] [pypi python support] [pypi django support] A Django app providing DB, form, and REST framework fields for [`zoneinfo`] and [`pytz`] timezone objects. ## The transition from `pytz` to `zoneinfo` Like Django, this app supports both `pytz` and `zoneinfo` objects while the community transitions away from `pytz` to `zoneinfo`. All exposed fields and functions that return a timezone object accept an optional boolean kwarg `use_pytz`. If not explicitly specified, the default value used for `use_pytz` matches Django's behavior: - Django <= 3.X: `use_pytz` defaults to `True` - Django == 4.X: `use_pytz` defaults to the value of [`django.conf.settings.USE_DEPRECATED_PYTZ`], which itself defaults to `False` - Django >= 5.X: django plans to [drop support for `pytz` altogether], and this app will likely do the same. When switching between `pytz` and `zoneinfo`, in general a [data migration] is _not_ needed, as both libraries recognize the same set of strings as valid timezones. Exceptions to that include if your local system has an unusual set of time zones installed, or if you are using the `Factory` timezone which `zoneinfo` recognizes but `pytz` does not. ## Examples ### Database Field ```python import zoneinfo import pytz from django.db import models from timezone_field import TimeZoneField class MyModel(models.Model): tz1 = TimeZoneField(default="Asia/Dubai") # defaults supported, in ModelForm renders like "Asia/Dubai" tz2 = TimeZoneField(choices_display="WITH_GMT_OFFSET") # in ModelForm renders like "GMT+04:00 Asia/Dubai" tz3 = TimeZoneField(use_pytz=True) # returns pytz timezone objects tz4 = TimeZoneField(use_pytz=False) # returns zoneinfo objects my_model = MyModel( tz2="America/Vancouver", # assignment of a string tz3=pytz.timezone("America/Vancouver"), # assignment of a pytz timezone tz4=zoneinfo.ZoneInfo("America/Vancouver"), # assignment of a zoneinfo ) my_model.full_clean() # validates against pytz.common_timezones by default my_model.save() # values stored in DB as strings my_model.tz3 # value returned as pytz timezone: my_model.tz4 # value returned as zoneinfo: zoneinfo.ZoneInfo(key='America/Vancouver') ``` ### Form Field ```python from django import forms from timezone_field import TimeZoneFormField class MyForm(forms.Form): tz1 = TimeZoneFormField() # renders like "Asia/Dubai" tz2 = TimeZoneFormField(choices_display="WITH_GMT_OFFSET") # renders like "GMT+04:00 Asia/Dubai" tz3 = TimeZoneFormField(use_pytz=True) # returns pytz timezone objects tz4 = TimeZoneFormField(use_pytz=False) # returns zoneinfo objects my_form = MyForm({"tz3": "Europe/Berlin", "tz4": "Europe/Berlin"}) my_form.full_clean() # validates against pytz.common_timezones by default my_form.cleaned_data["tz3"] # value returned as pytz timezone: my_form.cleaned_data["tz4"] # value returned as zoneinfo: zoneinfo.ZoneInfo(key='Europe/Berlin') ``` ### REST Framework Serializer Field ```python
Configuration Switches (platform-specific settings discarded)
PY310 OFF Build using Python 3.10 PY311 ON Build using Python 3.11
Package Dependencies by Type
Build (only) python-pip:single:py311
autoselect-python:single:standard
Build and Runtime python311:single:standard
Runtime (only) python-pytz:single:py311
Download groups
main mirror://PYPIWHL/c9/c0/1d8b814d74d4a001be436138c5b0fca0a3d3bc32454f19e88ada278121df
Distribution File Information
199f211082eeac7e83563929b8ce41399c1c0f00dfc2f36bc00bea381027eaaa 10412 django_timezone_field-5.0-py3-none-any.whl
Ports that require python-django-timezone-field:py311
No other ports depend on this one.