我创建了一个包含许多字段的表单。在另一个视图中,我需要显示在表单中输入的数据。有没有一种简单的方法可以重复使用表单,但是这次显示输入的数据(即'readonly')?
答案 0 :(得分:2)
您可以对表单进行子类化,并使用属性disabled
设置所有表单小部件。或者将所有字段设置为仅呈现文本而没有输入框的小部件(如django admin readonly小部件)。
class ReadOnlyForm(MyForm):
def __init__(self, *args, **kwargs):
super(ReadOnlyForm, self).__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs['disabled'] = 'true' # or replace the widget
# with one that just returns the value in plain html
readonly_form = ReadOnlyForm(the_data)
答案 1 :(得分:0)
另一种方法是控制表单的呈现方式:
{% for field in form %}
{{ field.label }}: {{ field.value }}
{% endfor %}