【发布时间】:2014-09-02 16:38:00
【问题描述】:
我正在尝试使用 django 创建一个条件字段。 “已批准”是一个复选框,“Date_of_approval”是一个日期字段。 “Member”是定义“clean”方法的类。
一旦选中了已批准的字段,我希望日期字段成为必填字段。 我使用下面的代码得到的错误是 'NoneType' object has no attribute 'get'
还请帮助我确认此代码的放置位置。我在我的模型页面中有它。每当我将其放入表单页面时,它都无法识别这些字段。
approved = models.BooleanField()
date_of_approval = models.DateField(blank=True, null=True,)
def clean(self):
cleaned_data = super(Member, self).clean()
approved = cleaned_data.get("approved")
date_of_approval = cleaned_data.get("date_of_approval ")
if approved and date_of_approval :
if approved and not date_of_approval :
raise forms.ValidationError("Invaid input")
return self.cleaned_data
【问题讨论】:
-
不是 100% 确定这是重复的,但似乎相关:stackoverflow.com/questions/2306800/…。
-
正如@Peter 所说,这个验证应该在表单中......