python - django models.DateField 防止过去

标签 python django django-models

我正在寻找防止用户在 django 管理页面中输入过去日期的方法。像这样:

Django: How to set DateField to only accept Today & Future dates

我的模型是这样的:

class MyModel(models.Model):
    date = models.DateField(null=True, blank=True, default=None)

最佳答案

执行此操作的正确方法是 validator .例如:

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])

关于python - django models.DateField 防止过去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002600/

相关文章:

使用 SWIG 从 C++ 到 Python - 程序在导入 pyd 库后停止工作

python - 如何清除ncurses中特定坐标范围内的字符串?

python - 如何在 SymPy 中扩展矩阵表达式?

regex - django 网址正则表达式

python - Django 和 urls.py : How do I HttpResponseRedirect via a named url?

python - 连接具有不同时区的 pandas DataFrame 时可能出现的错误

database - 版本跟踪,使用 django 自动更改数据库模式

javascript - 如果我的第 3 方 js 脚本嵌入在网站上,如何自动保存每篇新文章的标题

python - 使用 sqlite 在 Django 中进行查询过滤

django-models - Django模型,自定义函数