如何处理Django中不一致的日期?

如何处理Django中不一致的日期?,django,date,datetime,django-models,Django,Date,Datetime,Django Models,我试图为艺术家们展示出生和死亡的日期。有些艺术家的日期不完整。例如:Johannes Vermeer是“Delft,1632年10月-Delft,1675年12月15日” 在Django model.Datefield()中如何处理这个问题?我应该分别保存年、月和日吗?我不会分别保存年、月和日,因为过滤、订购、验证等都会让人头疼(如果用户输入5月31日怎么办?闰年怎么办?) 您可以使用django partial date,但实现本身相当简单 如果您不想添加依赖项,我只使用一个DateField

我试图为艺术家们展示出生和死亡的日期。有些艺术家的日期不完整。例如:Johannes Vermeer是“Delft,1632年10月-Delft,1675年12月15日”


在Django model.Datefield()中如何处理这个问题?我应该分别保存年、月和日吗?

我不会分别保存年、月和日,因为过滤、订购、验证等都会让人头疼(如果用户输入5月31日怎么办?闰年怎么办?)

您可以使用django partial date,但实现本身相当简单

如果您不想添加依赖项,我只使用一个DateField和一个CharField,它有三个选项:年、年、月和完整日期。然后,字符域可以包含不同类型的部分日期的日期格式。 大概是这样的:

DATE_TYPES = [
    ('%Y', 'Year only'),
    ('%m %Y', 'Year and month'),
    ('%d %m %Y', 'Full year'),
]

class Artist(models.Model):
    birth_date = models.DateField()
    birth_date_type = models.CharField(choices = DATE_TYPES)
这样,只需使用

artist.birth_date.format(artist.birth_date_type)

我不会单独保存年份、月份和日期,因为这将是一个令人头疼的筛选、订购、验证等问题(如果用户输入5月31日怎么办?闰年等怎么办?)

您可以使用django partial date,但实现本身相当简单

如果您不想添加依赖项,我只使用一个DateField和一个CharField,它有三个选项:年、年、月和完整日期。然后,字符域可以包含不同类型的部分日期的日期格式。 大概是这样的:

DATE_TYPES = [
    ('%Y', 'Year only'),
    ('%m %Y', 'Year and month'),
    ('%d %m %Y', 'Full year'),
]

class Artist(models.Model):
    birth_date = models.DateField()
    birth_date_type = models.CharField(choices = DATE_TYPES)
这样,只需使用

artist.birth_date.format(artist.birth_date_type)

检查:检查:对不起,它们应该是元组,所以这样写:('%Y','Year only')。对不起,我已经编辑了我的答案,它们应该是元组,所以这样写:('%Y','Year only')。我已相应地编辑了我的答案