gpt4 book ai didi

django-models - Django 。在自定义 clean() 方法中向 Form.errors 添加字段

转载 作者:行者123 更新时间:2023-12-04 04:47:26 26 4
gpt4 key购买 nike

我有一个事件模型,我想在自定义 def clean(self): 中放置以下验证规则。模型上的方法:

def clean(self):
from django.core.exceptions import ValidationError
if self.end_date is not None and self.start_date is not None:
if self.end_date < self.start_date:
raise ValidationError('Event end date should not occur before start date.')

哪个工作正常,除了我想突出显示 self.end_date管理 UI 中的字段,通过某种方式将其指定为有错误的字段。否则,我只会收到出现在更改表单顶部的错误消息。

最佳答案

从 Django 1.7 开始,您可以使用 add_error 直接向特定字段添加错误。方法。 Django docsform.add_error('field_name', 'error_msg or ValidationError instance')如果field_nameNone错误将被添加到 non_field_errors .

def clean(self):
cleaned_data = self.cleaned_data
end_date = cleaned_data.get('end_date')
start_date = cleaned_data.get('start_date')

if end_date and start_date:
if end_date < start_date:
self.add_error('end_date', 'Event end date should not occur before start date.')
# You can use ValidationError as well
# self.add_error('end_date', form.ValidationError('Event end date should not occur before start date.'))

return cleaned_data

关于django-models - Django 。在自定义 clean() 方法中向 Form.errors 添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com