【发布时间】:2016-04-26 19:19:04
【问题描述】:
在 Django 模型中验证日期和日期时间间隔的最佳解决方案是什么?
这是我的模型:
class PriceOption(Model):
from_datetime = DateTimeField(verbose_name=_('from datetime'))
to_datetime = DateTimeField(verbose_name=_('to datetime'))
from_time = TimeField(verbose_name=_('from time'))
to_time = TimeField(verbose_name=_('to time'))
我需要确保 from_datetime 发生在 to_datetime 之前,并且对于 from_time 和 to_time 也是如此。
我应该重写保存方法吗?还是验证器?
我看到 Postgres 有 Date 和 DateTime 范围字段。这只会解决第一对字段。
【问题讨论】:
-
你使用表格吗?验证应该在表单上进行。
-
@ShangWang 是的,我想使用表单。在模型中进行这种验证不是更好吗?
-
不,在表单上更方便。它还将逻辑与您的数据解耦。
-
Django 文档对您的情况进行了解释,以防您不知道:docs.djangoproject.com/en/1.9/ref/forms/validation/…
标签: django django-models django-forms