django unix时间戳(posix类型)字段
django-unixtimestampfield的Python项目详细描述
提供存储为float(utc posix timestamp)并用作datetime实例的自定义字段。
要求
- 支持float类型的数据库是兼容的
- Python2.7,3.4与django 1.8,1.9
note:由于1.8是LTS版本,所以我选择从1.8支持。 SubClassing will be removed in 2.0,所以我只处理from_db_value()。 如果您能帮助<;=1.7版,欢迎~~:d
安装
pip install django-unixtimestampfield
用法
用于以下型号:
fromdjango.dbimportmodelsfromunixtimestampfield.fieldsimportUnixTimeStampFieldclassModelA(models.Model):created=UnixTimeStampField(auto_now_add=True)modified=UnixTimeStampField(auto_now=True)str_ini=UnixTimeStampField(default='0.0')float_ini=UnixTimeStampField(default=0.0)int_ini=UnixTimeStampField(default=0.0)dt_ini=UnixTimeStampField(default=timezone.now)num_field=UnixTimeStampField(use_numeric=True,default=0.0)
操作示例:
>>>m=modelA.objects.create()>>>m.createddatetime.datetime(2015,9,2,10,41,41,937257,tzinfo=<UTC>)>>>m.int_inidatetime.datetime(1970,1,1,0,0,tzinfo=<UTC>)>>>m.int_ini=3>>>m.save()>>>m.int_inidatetime.datetime(1970,1,1,0,3,tzinfo=<UTC>)>>>m.num_field0.0
字段选项
- auto_now:设置为true以便在保存时更新,就像datetimefield一样
- auto_now_add:设置为true以便在创建时更新,就像datetimefield一样
- 舍入到:舍入(值,num)的百分比(num),默认值:6
- 使用浮点值:在v0.3中已弃用,请参阅使用数值
- 使用数值:将实例属性设置为true,默认为false
django设置
如果将“使用z”设置为“假”,则在访问属性时返回不带tz info的当前日期时间(在UTC时区中)信息。
示例:
# In settings.pyUSE_TZ=False>>>m=modelA.objects.create()>>>m.createddatetime.datetime(2015,9,2,10,41,41,937257)
复杂的子中间件
由于值是以浮点形式存储的,因此很难识别并导致这种复杂的中间件。
这里有3种显示数据的模式:
- usf_default:根据字段的use_numeric选项,默认显示数据。这也是默认设置。
- usf_datetime:始终转换为datetime对象
- usf_时间戳:始终转换为时间戳
使用usf_格式在settings.py中指示显示警察。让我们看看例子。
假设模型B为:
classModelB(models.Model):num_field=UnixTimeStampField(use_numeric=True,default=0.0)dt_field=UnixTimeStampField(default=0.0)
然后获取所需的字段值:
>>>m=ModelB()# with USF_FORMAT='usf_default' in settings.py>>>m.num_field,m.dt_field(0.0,datetime.datetime(1970,1,1,0,0))# with USF_FORMAT='usf_datetime' in settings.py>>>m.num_field,m.dt_field(datetime.datetime(1970,1,1,0,0),datetime.datetime(1970,1,1,0,0))# with USF_FORMAT='usf_timestamp' in settings.py>>>m.num_field,m.dt_field(0.0,0.0)
版本
v0.3.9–修复setup.py中包含的包
v0.3.8–修复了错误:将submiddleware应用到auto\u now字段并检查submiddleware中的格式
v0.3.7–检查最小值。
v0.3.6–修复时区问题。所有记录都存储在UTC时区,并在检索时转换。
v0.3.5.1–整数兼容性和修复时区问题
v0.3.5–解析时间格式:yyyy-mm-dd hh:mm:ss[.ffffff]
v0.3.4——修复了错误。
v0.3.3–添加子中间件和模板标记
v0.3–添加顺序时间字段并更改字段选项use_float到use_numeric!!!
v0.2–在初始化时处理formfield并添加选项
v0.1–添加了unixtimestampfield
许可证
麻省理工学院