我正在学习 django 表单,并且想知道如何仅制作模型表单生成的显示。
模型.py
class Person(models.Model):
first_name = models.CharField(max_length=40, null=True)
last_name = models.CharField(max_length=40, null=True)
#more fields
表格.py
class PersonForm(ModelForm):
class Meta:
model = Person
要使用数据库中的一些现有数据生成表单:
person=Person.objects.get(id=someid)
person_form = PersonForm(instance = person)
表单中的所有字段在页面中都是可编辑的。但是,我只想显示数据。
在 StackOverflow 中进行了一些搜索后,我找到了一个类似的解决方案,如何将 django ModelForm 字段显示为 uneditable,它教授如何设置单个字段不可编辑。
但我想让整个表单无法编辑。有没有更好的方法来代替将所有字段一一设置为不可编辑?
非常感谢您的帮助。
更新:我发现流动的代码有助于使表单不可编辑,但仍然不确定这是否是正确的方法。
for field in person_form.fields:
person_form.fields[field].widget.attrs['readonly'] = True
谢谢你的建议。