【问题标题】:Django form custom Date validationDjango 表单自定义日期验证
【发布时间】:2013-06-19 16:09:11
【问题描述】:

我有一个 django 类,它有两个日期属性——一个开始日期和一个结束日期。我想制定一个自定义验证要求,说明开始日期必须早于结束日期(或同一日期)。我知道这涉及自定义验证,但真的不知道应该去哪里(在模型中?在视图中?等)。

有什么建议吗?谢谢。

【问题讨论】:

  • 什么时候可以验证?保存?
  • @lalo 我想我想要的是 form.is_valid() 方法返回 False 如果我有 end_date
  • 显示表单定义和视图

标签: python django django-forms django-validation


【解决方案1】:

添加Form validation

如果您想验证模型保存,请使用django pre_save signal

【讨论】:

  • 是的。这就是我想要的 100%。我只是将两个日期相减(创建一个 timedelta),将其转换为总秒数,然后检查它是否小于 0。非常感谢!
【解决方案2】:

我会将验证放在模型和模板中。是的,这是两种不同语言(Python 和 Javascript)工作量的两倍,但您将通过这种方式获得更清晰的数据。这是在 jQuery 中执行此操作的一种方法:end date greater than start date - jquery validation

模型是放置该模型的所有数据验证的地方。创建一个接受所有参数并在数据不正确时引发异常(ValueError 等)的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多