Django: 初始验证由对象实例创建的表单,而不是POST

2024-06-26 14:21:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表单,我想在最初显示它之前进行验证。基本上,我要做的是当用户打开表单时,已经检查了初始值(从对象实例中提取),如果无效,则标记为附加错误。在

这个想法有两种形式:

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

第一个用于编辑草稿,第二个用于检查是否填写了所有需要发布的字段等

我想在“编辑项目”视图中这样做是可行的,并使初始表单显示错误:

^{pr2}$

但是不;full\u clean()也不会触发错误。有什么想法吗?在


Tags: 对象实例用户标记self编辑表单init
1条回答
网友
1楼 · 发布于 2024-06-26 14:21:59

你需要把表格装订起来。可以使用一个空字典来代替request对象。在

if request.session.get('trying_to_publish', False):
    form = FinalForm({}, instance=project)  
    form.is_valid()

is_valid()文档有助于对此进行一点解释(如果您知道自己在寻找什么)。表单必须先绑定,然后才能验证。即使是传递空字典的表单也会变成bound。在

相关问题 更多 >