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
SplitDateTimeTimeZoneFieldin place offorms.DateTimeField. - Use
SplitTimeTimeZoneFieldin 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_fieldanddatetimezone_fieldto yoursettings.INSTALLED_APPS
INSTALLED_APPS = (
...
timezone_field,
datetimezone_field,
...
)cd test/sample_projectvirtualenv sample-envsource sample-env/bin/activatepip install -r requirements.txtpython manage.py syncdbpython 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.