有没有办法在 django 的 clean()
表单方法中检查单个字段是否未通过验证。
我不想手动检查是否存在必填字段:
def clean():
cleaned_data = super().clean()
half_day = cleaned_data.get('half_day')
start_date = cleaned_data.get('start_date')
end_date = cleaned_data.get('end_date')
if start_date and end_date:
if half_day:
if start_date != end_date:
self.add_error(
'half_day',
'Start and end date must be the same'
)
最佳答案
如果 start_date
和 end_date
声明为 blank=False, null=False
(默认值),那么您可以这样做:
def clean(self):
cleaned_data = super(MyModelForm, self).clean()
if not self.is_valid():
return cleaned_data
if cleaned_data.get('half_day'):
if cleaned_data['start_date'] != cleaned_data['end_date']:
self.add_error(
'half_day',
'Start and end date must be the same'
)
return cleaned_data
super clean 会将请求返回
到带有错误
的模板,您将不必处理检查字段是否有值的问题。
关于python - Django 检查单个字段是否有错误并且不运行 clean()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47774470/