def resume_edit(request, r_id):
r = Resume.get.object(pk=r_id)
resume = ResumeModelForm(instance=r)
resume.fields['email'].widget.attrs['readonly'] = True
return render(request, 'resumes/resume.html', context)
Run Code Online (Sandbox Code Playgroud)
我试图这样做但它不起作用,我知道如何在 Forms.py 中做到这一点,但我想知道它可能与否?
我使用 Django 2.0
是的,从django-1.9 开始,一个字段的.disabled属性可以设置为True:
所以我们可以使用:
def resume_edit(request, r_id):
r = Resume.get.object(pk=r_id)
resume = ResumeModelForm(instance=r)
resume.fields['email'].disabled = True
return render(request, 'resumes/resume.html', context)Run Code Online (Sandbox Code Playgroud)
这不仅保证了相对应的形状零件的HTML被禁用,也将忽略可能发生的变化,当你发布的Form(请注意,你当然首先需要禁止的领域)。
由于render(..)调用会生成 HTML,因此字段当然应该在呈现、验证或.save()“d”之前进行更改。
该.disabled属性通常比 usingreadonly等更好。因为某些表单元素有一种特殊的方法可以在 HTML 级别禁用该元素(有些则disabled改为使用)。此外,如前所述,它不仅在 HTML 级别禁用表单元素。如果用户想要发布恶意值,那么表单将简单地忽略这些。
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |