7

我希望 Django 模型有一个日期字段,其中年、月和日都是可选的。示例值可以像 一样通用,也可以2008May 10, 2008. 是否可以定义 aDateField以这种方式运行?还是我最好将年/月/日定义为单独的整数,像这样?

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)
4

2 回答 2

8

https://github.com/dracos/django-date-extensions上的 django-date-extensions (由我专门为此目的)包含一个 ApproximateDate 对象来处理可能没有一个月或一天的日期。

于 2012-07-05T23:07:43.927 回答
2

Django 类 DateTimeField 基于 python datetime.datetime 类,其中年、月和日是强制性的:

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

取而代之的是,我将使用 Django DateTimeField 和一个布尔值,而不是定义三个整数字段,它告诉我我应该只取年份还是整个日期。

于 2012-07-05T23:07:15.097 回答