Django字段,用于存储不包含年份的日期。
项目描述
提供Django模型和表单字段,用于存储不包含年份的日期。
一个用例是收集不要求出生年份的生日。
先决条件
Django 1.8 - 1.11, 2.0
Python 2.7, 3.6
(其他版本可能功能正常,但未测试。)
安装
pip install django-yearlessdate
使用
该软件包提供了两个模型字段,YearlessDateField和YearField。
YearlessDateField
YearlessDateField存储一个不带年份的日期:例如1月1日。
它的默认小部件由两个下拉列表组成,一个用于天数,一个用于月份。
它只允许可能有效的日期。例如,用户无法将日期设置为4月31日。2月29日被视为有效日期。
以下是一个示例models.py,声明了一个具有必需的无年份日期的模型
from django.db import models from djangoyearlessdate.models import YearlessDateField class MyModel(models.Model): birthday = YearlessDateField()
可以在模型实例上像这样访问YearlessDateField的值
>>> a = MyModel.objects.get(id=1) >>> a <MyModel: 4 August 2011> >>> a.birthday.day 4 >>> a.birthday.month 8 >>> print a.birthday 4 August
它们也可以按预期进行比较或排序,例如
>>> m = MyModel.objects.all() >>> m [<MyModel: 4 August 2011>, <MyModel: 30 June 2013>] >>> m[0].birthday > m[1].birthday True >>> m.order_by('birthday') [<MyModel: 30 June 2013>, <MyModel: 4 August 2011>]
YearField
YearField是一个非常简单的模型字段,存储年份作为整数,并确保提供的年份在1900至2200之间
from django.db import models from djangoyearlessdate.models import YearField class MyModel(models.Model): year = YearField(null=True, blank=True)
由于缺乏可配置性,不推荐使用 YearField。你几乎肯定可以使用 SmallIntegerField 与 MinValueValidator 和 MaxValueValidator 结合使用来获得更好的效果。
运行测试
设置
请确保您已安装最新版本的 tox。
克隆此仓库。
运行测试
从该仓库的根目录,只需运行
tox
项目详情
关闭
django-yearlessdate-1.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03dfa9f7e0267ed05015896e698a81df982b68c203ec5256565897d0578e08b0 |
|
MD5 | 06424d2c3a72d518a895c6df62f7bf1a |
|
BLAKE2b-256 | 4063f4b7c02b6662e152025710e90e110660c116db40c95e469b6c2e885bbeeb |