Here is how it looks like.
Written on top of django-timezone-field.
A Django app providing database and form fields for split datetime/time and pytz timezone objects.
- Use
SplitDateTimeTimeZoneField
in place offorms.DateTimeField
. - Use
SplitTimeTimeZoneField
in place offorms.TimeField
.
The setting USE_TZ_FIELDS = True
will convert all admin.ModelAdmin
to use SplitDateTimeTimeZoneField
for models.DateTimeField
and SplitTimeTimeZoneField
for models.TimeField
.
Requires USE_TZ = True
in settings.py
If using a database that does not support timezone-aware times then the initial values of model forms will always be in the UTC timezone.
import pytz
from django import http
from django import forms
from django.utils import timezone
from django.forms.util import to_current_timezone
from django.conf import settings
from datetimezone_field import SplitDateTimeTimeZoneField, \
SplitTimeTimeZoneField
def index(request):
class MyForm(forms.Form):
a_datetime = SplitDateTimeTimeZoneField()
a_time = SplitTimeTimeZoneField()
tz = pytz.timezone("Australia/Sydney")
timezone.activate(tz)
now = to_current_timezone(timezone.now()).replace(tzinfo=tz)
my_form = MyForm(initial={
'a_datetime': now,
'a_time': now.time().replace(tzinfo=now.tzinfo)
})
return http.HttpResponse(my_form.as_p())
-
pip install django-datetimezone-field
Add
timezone_field
anddatetimezone_field
to yoursettings.INSTALLED_APPS
INSTALLED_APPS = (
...
timezone_field,
datetimezone_field,
...
)
cd test/sample_project
virtualenv sample-env
source sample-env/bin/activate
pip install -r requirements.txt
python manage.py syncdb
python manage.py runserver
- Unit tests
To file a bug or submit a patch, please head over to django-datetimezone-field on github.
Built on top of Mike Fogel's django-timezone-field.