提问者:小点点

Django中的日期字段验证[重复]


我有一个模型,用户可以在(yyyy-mm-dd)中输入日期。 我如何确定日期不是在过去几天内,而是在包括今天在内的未来7天内?

class Tables(models.Model):
    tablerequiretime = models.TimeField()

例如,

  • 如果用户输入2020-6-26,则会出现错误,因为日期是昨天
  • 如果用户输入2020-6-27,则应接受日期为今天。
  • 如果用户输入2020-7-4,则应接受日期在此弱值内。

在模型层中实现逻辑是可能的吗? 还是应该选择序列化字段?


共2个答案

匿名用户

必须使用DateField而不是TimedField。

如果有用,请接受答案

匿名用户

model.clean()

此方法应用于提供自定义模型验证,并在需要时修改模型上的属性。 例如,您可以使用它自动为字段提供值,或者执行需要访问多个字段的验证

但是请注意,与model.full_clean()一样,当调用模型的save()方法时,模型的clean()方法不会被调用。

https://docs.djangoproject.com/en/3.0/ref/models/instances/#django.db.models.model.clean