Django存放无年份日期的字段。

django-yearlessdate的Python项目详细描述


为不包含年份的日期提供django模型和表单字段。

一个用例是收集生日而不需要出生年份。

Build statusPython versionsDjango compatibilitydjango-yearlessdate can be installed via wheeldjango-yearlessdate can be installed via wheel

先决条件

  • Django 1.8-1.11,2.0
  • Python2.7,3.6

(其他版本可能起作用,但未经测试。)

安装

pip install django-yearlessdate

用法

包提供了两个模型字段,YearlessDateFieldYearField

年份sDatefield

YearlessDateField存储没有年份的日期:例如,一月一日

它的默认小部件由两个下拉列表组成,一个用于一天,一个用于一个月。

它只允许潜在的有效日期。例如,用户将无法设置 截止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是一个非常简单的模型字段,它将年份存储为整数, 并确保所提供的年份介于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

运行测试

设置

  1. 确保安装了最新版本的tox
  2. 克隆此回购协议。

运行测试

从本回购协议的根目录中,只需运行:

tox

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

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束