如何使用 HTML 属性只读而不是禁用使 django 表单字段只读

How to make a django form field readonly with the HTML attribute readonly instead of disabled

我想将表单中的字段设置为只读。我已经在表单中使用了 disabled,但是当表单触发 POST 请求时它不会将我的数据发送到数据库。

site_location = forms.CharField(disabled=True)

因此,我检查了该元素并手动将 readonly 属性添加到其 HTML 代码中以检查 readonly 是否正常工作。并且 readonly 在提交表单时没有问题。但是 disabled 告诉我我的表单无效。

根据这个答案,Readonly 和 Disabled 有一些区别: What's the difference between disabled="disabled" and readonly="readonly" for HTML form input fields?

如何在表单中使用只读而不是禁用?

我找到了。我不知道为什么没有人使用这个。从旧网站上找到的。

site_location = forms.CharField(widget=forms.TextInput(attrs={'readonly':'readonly'}))  

这是最好的解决方案。