django model 与 form 相关知识点
文章目录
form知识点总结
ModelForm显示关联字段
ModelForm与Model很是不同。ModelForm终归是Form。因为Form只是表单,和数据库结合的很弱,所以就不能直接像Model一样,使用__
、_set
或.
取值。但Django中还是提供了显示的方法,使用initial
。
方法:
- 在Form中定义一个和Model不相关的Field,然后在bound
Form的时候,给参数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()
详细请参考链接