Django应用程序,为Pytz时区对象提供数据库和表单字段。
django-timezone-field的Python项目详细描述
为pytz时区对象提供数据库和表单字段的django应用程序。
示例
数据库字段
importpytzfromdjango.dbimportmodelsfromtimezone_fieldimportTimeZoneFieldclassMyModel(models.Model):timezone1=TimeZoneField(default='Europe/London')# defaults supportedtimezone2=TimeZoneField()timezone3=TimeZoneField()my_inst=MyModel(timezone1='America/Los_Angeles',# assignment of a stringtimezone2=pytz.timezone('Turkey'),# assignment of a pytz.DstTzInfotimezone3=pytz.UTC,# assignment of pytz.UTC singleton)my_inst.full_clean()# validates against pytz.common_timezonesmy_inst.save()# values stored in DB as stringstz=my_inst.timezone1# values retrieved as pytz objectsrepr(tz)# "<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>"
表单域
fromdjangoimportformsfromtimezone_fieldimportTimeZoneFormFieldclassMyForm(forms.Form):timezone=TimeZoneFormField()my_form=MyForm({'timezone':'America/Los_Angeles',})my_form.full_clean()# validates against pytz.common_timezonestz=my_form.cleaned_data['timezone']# values retrieved as pytz objectsrepr(tz)# "<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>"
安装
pip install django-timezone-field
将时区字段添加到您的settings.INSTALLED_APPS:
INSTALLED_APPS=(...'timezone_field',...)
更改日志
- 3.0(2018-09-15)
- 2.1(2018-03-01)
- 2.0(2016-01-31)
- 放弃对django 1.7的支持,添加对django 1.9的支持
- 放弃对Python3.2、3.3的支持,添加对Python3.5的支持
- 从源分发中删除测试
- 1.3(2015-10-12)
- 放弃对django 1.6的支持,添加对django 1.8的支持
- 各种bug fixes
- 1.2(2015-02-05)
- 对于表单域,更改了接受时区的默认列表 pytz.all_时区到pytz.common_时区,匹配数据库字段 行为。
- 1.1(2014-10-05)
- Django 1.7兼容性
- 添加了对格式化选项的支持kwarg as[[[lt;str>;,<;str>;],…], 除了以前的格式[[[<;pytz.timezone>;,<;str>;],…]。
- 已将默认接受时区列表从pytz.all\u timezones更改为 pytz.common\u时区。如果你的数据库中有时区 pytz.all_timezones但不在pytz.common_timezones中,这是一个 向后不兼容的更改。旧的行为可以通过 在您的 模型定义。
- 1.0(2013-08-04)
- 初始版本为时区字段。
运行测试
安装tox。
从存储库根目录中,运行
tox
postgres需要在本地运行,sqlite需要 安装是为了让毒物发挥作用。
找到虫子了吗?
若要提交错误或修补程序,请转到django-timezone-field on github。
学分
最初改编自Brian Rosner’s django-timezones。贡献者的完整列表可以在github上找到。