form知识点总结

ModelForm显示关联字段

ModelForm与Model很是不同。ModelForm终归是Form。因为Form只是表单,和数据库结合的很弱,所以就不能直接像Model一样,使用___set.取值。但Django中还是提供了显示的方法,使用initial。 方法: - 在Form中定义一个和Model不相关的Field,然后在boundForm的时候,给参数initial字典数据(包含不相关字段的数据),这样就可以动态的显示相应字段了。 - 对于bound的Form实例,可以使用像form.fields['email'].initial = self.org_obj.user.email的方法,也可以动态在前端显示字段的值。 form.helper['email'].update_attributes(readonly=True)

具有动态choices的字段

在第一Form类时,使用类似下面的代码

    def __init__(self, *args, **kwargs):
        super(ParaListQueryForm, self).__init__(*args, **kwargs)
        self.fields['q_type'].choices = getChoices()

详细请参考链接