使用默认的 DateField() 验证,您可以使用几种不同的格式来插入月、日和年。但是,我需要允许用户只输入年份或月份、日期和年份。
例如,在同一字段中,您可以插入“5/10/2003”或“2003”,验证将通过。此外,如果插入了“2003”,是否只需将其默认为“1/1/2003”(或类似的东西)还是有更好的方法来做到这一点?
最后,这是否可以通过覆盖 clean() 方法在模型中完成,这样我就不必跨多个表单重用代码?IE:
class Project(models.Model):
name = models.CharField(max_length=100)
start_date = models.DateField()
## other fields
def clean(self):
# clean other fields as normal
# override start_date
或者它应该看起来像这样:
def validate_date(value):
""" Validate date to allow YYYY """
## Raise error on Validation fail
class Project(models.Model):
name = models.CharField(max_length=100)
start_date = models.DateField()
## other fields
def clean(self):
# clean other fields as normal
# override start_date