我有一个表格,我想在最初显示之前对其进行验证。基本上我想要的行为是,当用户打开表单时,初始值(从对象实例中提取)已经被检查,如果无效,则标记为附加错误。
这个想法是有两种形式:
def DraftForm(forms.ModelForm):
class Meta:
model = Project
def FinalForm(DraftForm):
def __init__(self, *args, **kwargs):
super(FinalForm, self).__init__(*args, **kwargs)
self.fields['text'].required = True
第一个用于编辑草稿,第二个用于检查是否填写了发布所需的所有字段等。
我认为在“编辑项目”视图中这样的事情会起作用,并使初始表单显示错误:
# redirected from some other form, so no POST at this point:
if request.session.get('trying_to_publish', False):
form = FinalForm(instance=project)
form.is_valid()
else:
form = DraftForm(instance=project)
...
但不是; full_clean() 也不会触发错误。有任何想法吗?