我想在以下情况下重用Django表单:
在显示数据时,我使用了以下功能将字段设为只读:
class form1(modelForm):
fields...
def get_form(self, *args, **kwargs):
super(form1, self).__init__(*args, **kwargs)
for key in self.fields.keys():
self.fields[key].widget.attrs['readonly'] = True
我也尝试使用 init 函数,但是在编辑时我无法使用“ form1”,Django仍将表单呈现为只读。
不胜感激,不胜感激。
答案 0 :(得分:0)
解决方案是这样的
form_to_edit(modelForm):
fields
.
.
form_to_display(form_to_edit):
def __init__(self, *args, **kwargs):
super(form_to_edit, self).__init__(*args, **kwargs)
for key in self.fields.keys():
self.fields[key].widget.attrs['readonly'] = True
只要必须显示表单,就渲染“ form_to_display”,并进行编辑,则渲染“ form_to_edit”,
form_to_display中的代码使用只读字段创建/初始化form_to_edit