Django模型日期字段中的可选年/月/日

2024-04-26 02:59:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望Django模型有一个日期字段,其中年份、月份和日期都是可选的。示例值可以像2008一样通用,也可以像May 10, 2008一样特定。有没有可能定义一个DateField来这样做?或者我最好将年/月/日定义为单独的整数,就像这样?

model Book(models.Model):
    publication_year = models.IntegerField(blank=True, null=True)
    publication_month = models.IntegerField(blank=True, null=True)
    publication_day = models.IntegerField(blank=True, null=True)

Tags: django模型true示例定义models整数null
2条回答

Django类DateTimeField基于python datetime.datetime类,其中year、month和day是必需的:

datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])

在您的位置上,我将使用Django DateTimeField和一个boolean来代替定义三个整型字段,如果我只需要一年或整个日期,它会告诉我。

位于https://github.com/dracos/django-date-extensions的django日期扩展(由我提供,正是为了这个目的)包含一个近似日期对象,用于处理可能没有一个月或一天的日期。

相关问题 更多 >