在openerp中,Readonly字段没有保存在数据库中?

时间:2014-04-22 12:42:29

标签: python openerp readonly

我正在使用python和xml来创建一个openerp模块。我创建了具有多个字段的模块。除客户ID字段外,所有字段都是只读字段。当我在客户字段中填写客户ID时,其他字段会自动填写。但除了客户ID字段外,它不会保存数据库中的所有字段值。

当所有字段都不是只读时,它将保存 当所有字段都是只读时,它将无法保存

所以我想要什么

  1. 当我输入客户ID时,应自动填写其他字段。
  2. 除客户ID字段外,所有字段均应为只读字段。
  3. 单击“保存”时,所有值都应保存在数据库中。
  4. 谁能告诉我吗?我该怎么办?

    提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用'state'变量并将所需变量设置为readonly = True表示特定'state'。并在创建或编写类的函数中将状态更改为完成。

例如:在以下代码中使用您的变量而不是client_id

class collection_details(osv.osv):
 _name = "collection.details"
 _description = "Collection Details"    
 _columns={
    'state': fields.selection([
            ('draft', 'Draft Sales Order'),
            ('done', 'Done'),
            ], 'Status', readonly=True, invisible=True, track_visibility='onchange',
            help="", select=True),
    'client_id': fields.char('Client Id',size=64,readonly=True,states={'draft': [('readonly', False)]}),
 }
 _defaults = {
        'state': 'draft',
    }

希望这会对你有所帮助