python - django models.DateField 防止过去
问题描述
我正在寻找阻止用户在 django 管理页面中输入过去日期的方法。像这样的东西:
Django:如何将 DateField 设置为仅接受今天和未来日期
我的模型如下所示:
class MyModel(models.Model):
date = models.DateField(null=True, blank=True, default=None)
解决方案
正确的方法是验证器。例如:
def validate_date(date):
if date < timezone.now().date():
raise ValidationError("Date cannot be in the past")
该函数将确定特定输入值是否可接受,然后您可以将验证器添加到模型字段,如下所示:
date = models.DateField(null=True, blank=True, default=None, validators=[validate_date])
推荐阅读
- clojure - Clojure寻找矩形区域
- ios - UICollectionViewCell 在滚动开始后立即更改数据
- c - `scanf("%*s")` 会失败吗?
- java - 超类方法可以覆盖子类方法吗?
- fonts - 如何按类别分类字体(衬线、无衬线、手写、显示)
- python - 数学是如何在 python 中工作的(线性回归)
- apache-kafka - 是否可以运行 2 个具有相同应用程序 ID 但不同拓扑的 Kafka Streams JVM?
- c# - 如何在 asp.net core 2 中的静态方法/类中访问数据库上下文
- regex - 如何从传递给 regex::Regex::replace 的闭包中冒出错误?
- angular - 角材料
不保留 CSS/SCSS 样式