A Django app providing database and form fields for pytz timezone objects.
Project description
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
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
Changed format of choices kwarg to [[<str>, <str>], …], was previously [[<pytz timezone>, <str>], …]. Old format is still deprecated but still accepted for now; support will be removed in a future release.
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
tox
It’s that simple.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-timezone-field-1.2.tar.gz
.
File metadata
- Download URL: django-timezone-field-1.2.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 643c498e08234b9b4c1b0e0478f0ff79221e51909a066e8b8ad10bdbb86a16c1 |
|
MD5 | 1b27c7bd9ab6b00477ce466d8b732f81 |
|
BLAKE2b-256 | 2afb0e6bf16165a6d06cba87e8709e61edc75ffa5825150e05c2edf02877073f |