我正在尝试在验证期间根据选择小部件强制要求表单字段。
def clean(self):
cleaned_data = self.cleaned_data
if cleaned_data.get('periodical') == True:
if cleaned_data.get('period_start_date') == None:
msg = _('custom message')
self._errors['period_start_date'] = ErrorList([msg])
代码示例有效,但是对于是否需要period_start_date(因此不是空)或者它是否是正确的格式化日期,错误消息中没有区别。由于Django的验证处理得当,我不打算替换它。
我想要完成的(某种程度上的)是在period_start_date字段上设置为True时,在运行clean()之前勾选了选择字段'periodicical'。对我来说,任何人都有启发性的提示吗?
感谢名单。
答案 0 :(得分:1)
def clean_period_start_date(self):
psd = self.cleaned_data['period_start_date']
prd = self.cleaned_data['periodical']
if prd:
if not psd:
raise forms.ValidationError("Start date is required on a periodical thing...")
return psd
仅清理期间开始日期。然后你可以专门为此提出错误。