django-timezone-field
A Django app providing database and form fields for pytz timezone objects.
Examples
Database Field
import pytz
from django.db import models
from timezone_field import TimeZoneField
class MyModel(models.Model):
timezone1 = TimeZoneField(default='Europe/London') # defaults supported
timezone2 = TimeZoneField()
timezone3 = TimeZoneField()
my_inst = MyModel(
timezone1='America/Los_Angeles', # assignment of a string
timezone2=pytz.timezone('Turkey'), # assignment of a pytz.DstTzInfo
timezone3=pytz.UTC, # assignment of pytz.UTC singleton
)
my_inst.full_clean() # validates against pytz.common_timezones
my_inst.save() # values stored in DB as strings
tz = my_inst.timezone1 # values retrieved as pytz objects
repr(tz) # "<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>"
Form Field
from django import forms
from timezone_field import TimeZoneFormField
class MyForm(forms.Form):
timezone = TimeZoneFormField()
my_form = MyForm({
'timezone': 'America/Los_Angeles',
})
my_form.full_clean() # validates against pytz.common_timezones
tz = my_form.cleaned_data['timezone'] # values retrieved as pytz objects
repr(tz) # "<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>"
Installation
-
pip install django-timezone-field Add timezone_field to your settings.INSTALLED_APPS:
INSTALLED_APPS = ( ... 'timezone_field', ... )
Changelog
2.0 (2016-01-31)
Drop support for django 1.7, add support for django 1.9
Drop support for python 3.2, 3.3, add support for python 3.5
Remove tests from source distribution
1.3 (2015-10-12)
Drop support for django 1.6, add support for django 1.8
Various bug fixes
1.2 (2015-02-05)
For form field, changed default list of accepted timezones from pytz.all_timezones to pytz.common_timezones, to match DB field behavior.
1.1 (2014-10-05)
Django 1.7 compatibility
Added support for formating choices kwarg as [[<str>, <str>], …], in addition to previous format of [[<pytz.timezone>, <str>], …].
Changed default list of accepted timezones from pytz.all_timezones to pytz.common_timezones. If you have timezones in your DB that are in pytz.all_timezones but not in pytz.common_timezones, this is a backward-incompatible change. Old behavior can be restored by specifying choices=[(tz, tz) for tz in pytz.all_timezones] in your model definition.
1.0 (2013-08-04)
Initial release as timezone_field.
Running the Tests
Install tox.
From the repository root, run
toxPostgres will need to be running locally, and sqlite will need to be installed in order for tox to do its job.
Found a Bug?
To file a bug or submit a patch, please head over to django-timezone-field on github.
Credits
Originally adapted from Brian Rosner’s django-timezones. The full list of contributors is available on github.
Metadata
Release files for ambition-django-timezone-field 2.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ambition-django-timezone-field-2.0.4.tar.gz | 6.7 kB | Without provenance | Details for ambition-django-timezone-field-2.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ambition_django_timezone_field-2.0.4-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for ambition_django_timezone_field-2.0.4-py2.py3-none-any.whl |
Total release size: 13.9 kB
Release files / ambition-django-timezone-field-2.0.4.tar.gz
| Download URL | ambition-django-timezone-field-2.0.4.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4065b100cb964a39df973b4813fbb4ae16e49a7d09c1d5f4c669b096d61fe271
|
|
BLAKE2b-256 checksum How to use checksums |
c8e8e3201802e42d083ac7799c1e0bdfd3eb8a208ef781ba321ed44dd87f1000
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.0.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.8
|
Release files / ambition_django_timezone_field-2.0.4-py2.py3-none-any.whl
| Download URL | ambition_django_timezone_field-2.0.4-py2.py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
428a729b84d3bc9c0621182552362f4466067c17f36a8fea1abe5bcebeb86aae
|
|
BLAKE2b-256 checksum How to use checksums |
fec9421698da254f9aa29481e216fa2e79810a4aedf52b61045fc357757f1203
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.0.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.8
|
Security for ambition-django-timezone-field 2.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.