由 sysdate 相关日期验证器引起的合成/冗余 Django 迁移
Posted
技术标签:
【中文标题】由 sysdate 相关日期验证器引起的合成/冗余 Django 迁移【英文标题】:Synthetic/redundant Django migrations caused by sysdate dependent date validator 【发布时间】:2018-07-05 18:46:05 【问题描述】:我在 Django 模型中有一个如下所示的日期字段,我希望日期在未来(或今天,但不是过去)。
foo = models.DateField('Foo', null=True,
validators=[MinValueValidator(date.today())])
这工作正常,表单上的验证按预期进行,但是,makemigrations
每天都会在该日期运行时创建一个新迁移,下面是今天生成的示例:
field=models.DateField(null=True,
validators=[django.core.validators.MinValueValidator(
datetime.date(2018, 1, 26))]
我怎样才能避免这种情况?我应该使用自定义验证器而不是 MinValueValidator
还是将 clean
方法添加到 Form
子类而不是像 this?
【问题讨论】:
【参考方案1】:没有办法避免这种情况。 你有几个选择。
编写自定义验证器。 在您的表单中编写一个 clean_fieldname 方法。 在模型上写入 pre_save 信号,确保值正确。【讨论】:
以上是关于由 sysdate 相关日期验证器引起的合成/冗余 Django 迁移的主要内容,如果未能解决你的问题,请参考以下文章