Django:未提交表单中的只读字段
Posted
技术标签:
【中文标题】Django:未提交表单中的只读字段【英文标题】:Django: read-only field in form not submitted 【发布时间】:2012-01-17 07:32:41 【问题描述】:在我的表单中,我有一个只读字段。该字段的内容将由 java 脚本填充,并取决于可编辑字段的输入。为了避免用户修改字段数据,我想将其标记为只读。
当我在 forms.py 中使用
将字段标记为只读时'key': forms.TextInput(attrs='disabled':'disabled'),
该字段的内容似乎是只读的,但不会提交。当我尝试读取 form.cleaned_data['key'] 时出现以下错误:
Exception Type: MultiValueDictKeyError
Exception Value: "Key 'key' not found in <QueryDict: ...>
有没有比“禁用”更好的方法在 Django 表单中将该字段标记为“只读”?
感谢您的建议!
【问题讨论】:
看来'key': forms.TextInput(attrs='readonly':'True'),会解决的。抱歉,应该在文档中进一步阅读。 【参考方案1】:禁用的字段永远不会在表单数据中提交。但您可以在几乎所有浏览器中使用 readonly="readonly"
属性,supported。
参考这篇文章http://www.cs.tut.fi/~jkorpela/forms/readonly.html也会很有帮助。
快乐编码。
【讨论】:
readonly
的问题在于它不适用于某些输入类型,例如复选框或选择。以上是关于Django:未提交表单中的只读字段的主要内容,如果未能解决你的问题,请参考以下文章