【发布时间】:2020-07-27 17:33:21
【问题描述】:
我发现在 Django 中有很多方法可以验证错误,我只是想知道哪一种更可取,为什么?
例如
-
使用干净的形式,例如:
deadline = self.cleaned_data.get('deadline') if datetime.strptime(str(deadline)[:19], '%Y-%m-%d %H:%M:%S') < datetime.today(): raise forms.ValidationError(_('Deadline cannot be in past!')) return deadline -
在保存之前,我们可以验证是否有任何错误,并在一切正常的情况下发送实例,例如:
def save(self, force_insert=False, force_update=False, *args, **kwargs): if datetime.strptime(str(deadline)[:19], '%Y-%m-%d %H:%M:%S') < datetime.today(): raise forms.ValidationError(_('Deadline cannot be in past!')) else: super(MODEL, self).save(force_insert, force_update, *args, **kwargs) -
并且不要忘记模型中的验证器,我可以在它自己的字段中使用一个验证器,例如:
deadline = models.DateTimeField( verbose_name=_('deadline'), validators=[MaxValueValidator(datetime.datetime.today())], help_text=_('Note that the end time will be at the midnight of the day you picked.'),)
此外,我们可以在类表单中的表单中执行此操作,我们可以在保存之前检查一切是否正确
我想知道哪个是最好的程序员,写专业的代码
【问题讨论】:
标签: django django-models django-forms