2012-07-05 179 views
4

我想讓Django模型有一個日期字段,其中年,月和日都是可選的。示例值可以與2008一樣通用,或者與May 10, 2008一樣具體。是否可以定義一個DateField以表現這種行爲?或者我最好將年/月/日定義爲單獨的整數,像這樣?Django模型日期字段中的可選年/月/日

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) 
+0

「5月10日」是您的需求的有效日期嗎? – cha0site 2012-07-05 23:01:23

+0

是 - 每個值(年,月,日)都是可選的。 – 2012-07-06 00:45:05

回答

2

Django的類DateTimeField字段是基於Python的datetime.datetime所在班級的年,月和日是必需的:

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

在你的地方,而不是定義三個整場我會使用Django的DateTimeField和和一個布爾值,如果我只應該採取一年或整個日期的話,我就會感到困惑。