django unix时间戳(posix类型)字段

django-unixtimestampfield的Python项目详细描述


https://img.shields.io/travis/myyang/django-unixtimestampfield.svghttps://img.shields.io/pypi/v/django-unixtimestampfield.svghttps://coveralls.io/repos/myyang/django-unixtimestampfield/badge.svg?service=github

提供存储为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)

模板标签

加载模板标记:

{% load unixtimestampfield %}

提供两个django模板筛选器标记:

  • 到日期时间:将值筛选为日期时间
  • to_timestamp:将值筛选为timestamp

复杂的子中间件

由于值是以浮点形式存储的,因此很难识别并导致这种复杂的中间件。

这里有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_floatuse_numeric!!!

v0.2–在初始化时处理formfield并添加选项

v0.1–添加了unixtimestampfield

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java log4j找不到log4jtest。房产?   我在java线程“awteventque1”中获得异常。lang.NullPointerException   java为什么在使用完整路径从文件系统读取文件时出错?   java如何迭代所有注册表项?   java中的安卓 Opencv SVM未正确训练   多线程Java ThreadPoolExecutor关闭特定线程?   如何使用Java NIO CreateDirectory方法设置目录所有者组?   java NatTable混合了固定宽度的列和可调整大小的填充剩余空间   java如何删除特定网络,即使该网络是由安卓上的其他设备创建的?   java Guava toJavaUtil()不存在   java对许多常量使用枚举是有效的memorywise?   java是否可以使用坐标定位JButton?   从WSDL生成java代码导致异常   java如何在安卓中导出javadoc   爬行JAX中的java NoClassDefFoundError错误   java为片段中的文本视图设置区域设置   发送最后一条消息后发生Java RMI RemoteException