如何根据决策(布尔)字段在现有表单的视图中设置默认值?

Posted

技术标签:

【中文标题】如何根据决策(布尔)字段在现有表单的视图中设置默认值?【英文标题】:How to set the default value in the view of an existing form, depending on the decision (boolean) field? 【发布时间】:2018-12-22 11:41:36 【问题描述】:

我想在勾选“citizen”(我将它作为布尔字段添加到我的 .py 文件中)时更改“Contacts/new”表单的视图。当它为 True 时,我希望 "zip" 字段为只读类型,默认值为 "12345" ,而当它通常为 False 时。

如果我不完全清楚,或者如果您需要我的代码,请告诉我。

【问题讨论】:

【参考方案1】:

要为 zip 字段设置默认值,请为字段 citizen 编写 onchange 方法。

试试这样的:

 @api.onchange('citizen')
 def onchange_citizen(self):
    if self.citizen:
       self.zip = 123456

并且在view中,当citizen字段的值为True时,在zip字段上设置readonly true

 <field name="zip" attrs="'readonly':[('citizen','=',True)]"/>

希望这会对你有所帮助。

【讨论】:

以上是关于如何根据决策(布尔)字段在现有表单的视图中设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章

访问表单 - 如何从“此视图可用的字段”中删除额外的链接表

根据值在 Admin 中自定义 Django 表单字段

如何知道文本字段何时更改而不保存

根据布尔值更改 Xamarin 表单标签的文本

如何使用数据为现有模型中的新模型字段设置默认值

如何在 Django 中根据需要为 formset_factory 设置每个字段(如何验证表单集中的空白表单)