Skip to main content

A Django app providing database and form fields for pytz timezone objects.

Project description

https://api.travis-ci.org/mfogel/django-timezone-field.png?branch=develop https://coveralls.io/repos/mfogel/django-timezone-field/badge.png?branch=develop https://pypip.in/v/django-timezone-field/badge.png https://pypip.in/d/django-timezone-field/badge.png

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

  1. From pypi using pip:

    pip install django-timezone-field
  2. Add timezone_field to your settings.INSTALLED_APPS:

    INSTALLED_APPS = (
        ...
        'timezone_field',
        ...
    )

Changelog

  • 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

  1. Install tox.

  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-timezone-field-1.1.tar.gz (8.5 kB view details)

Uploaded Source

File details

Details for the file django-timezone-field-1.1.tar.gz.

File metadata

File hashes

Hashes for django-timezone-field-1.1.tar.gz
Algorithm Hash digest
SHA256 c7f77e2524aca292137209b5fdb4570ef356d1c072db806c0ca4cf1e31ffbeba
MD5 eda9ffabd472b4640ec970621c42646f
BLAKE2b-256 c18eaa1882440890fee11aac33e15fec898fb7410a1bc595858ca0cb606008e6

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page