带有初始数据的 Django 禁用字段引发验证错误 [重复]

Posted

技术标签:

【中文标题】带有初始数据的 Django 禁用字段引发验证错误 [重复]【英文标题】:Django disabled field with initial data raises validation errors [duplicate] 【发布时间】:2018-04-28 08:19:12 【问题描述】:

我的表单中有一个字段,如果用户是员工(管理员可以从列表中选择),该字段会被赋予初始数据并被禁用。我使用下面的代码行为员工禁用了此字段。

self.fields[''].disabled = True

升级到 django 1.11.7 后,它开始引发验证错误。我尝试使用

将其设为只读

self.fields[''].widget.attrs['readonly'] = True

Css 变为只读,但我仍然可以进行更改。

这是 1.11.7 的错误还是禁用功能的工作方式发生了变化。我在文档中找不到任何新内容

【问题讨论】:

你要禁用的字段,是文本输入/选择..?? 1) 该字段是选择字段。 2)该解决方案并没有真正起作用,因为我只需要在创建模型时将其设为只读。我尝试使用禁用字段进行更新,它工作正常。当我尝试使用禁用字段创建新模型时,它会引发我的错误。该字段是必需的。忘记补充了。这样做是为了让管理员在创建模型时不能将其留空。员工用户已给出初始数据,并且该字段为只读。 【参考方案1】:

不是最好的解决方法,但我设法让它工作。在模型字段上,我将其设置为 blank=True,因此它不会使用 disabled=True 提高我的空字段验证,然后在保存方法中,我分配了值 i还需要一次。

【讨论】:

以上是关于带有初始数据的 Django 禁用字段引发验证错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django REST Framework:当 POST 上存在额外字段时引发错误

禁用上下文 LOB 创建作为 createClob() 方法引发错误

Parsley 在页面上没有的字段上引发错误

Django - 禁用表单选择字段验证

为啥我的 Django 表单没有引发验证错误?

禁用 Symfony 2 类型中选择字段的后端验证