在Transient模型Odoo 10中节省价值

时间:2017-10-15 07:24:21

标签: openerp odoo-10

我在account.config.settings模型中添加了一个新字段。它在设置页面中显示新字段,并可以输入值。但是当我重新打开页面时,价值就不存在了。我知道Transient model赢得了很长时间的存储值。

但其余的价值观仍然存在,我怎样才能做到这一点? 以下是我的代码。

*。PY

class AccountSettings(models.TransientModel):
_inherit='account.config.settings'

    @api.one
    def _get_header(self):

        header = fields.Char('Header')

*。XML

<record id="view_account_config_settings_inherit" model="ir.ui.view">
  <field name="name">view.account.config.settings.inherit.form</field>
  <field name="model">account.config.settings</field>
  <field name="inherit_id" ref="account.view_account_config_settings"/>
  <field name="arch" type="xml">
  <xpath expr="//group[@name='accounting']" position="after">
    <group string="Reports" name="reports">
         <field name="header" class="oe_inline"/>
    </group>
  </xpath>
  </field>
</record>

2 个答案:

答案 0 :(得分:2)

account.config.settings模型中,您可以使用以下方法保存您的值:

class AccountSettings(models.TransientModel):
    _inherit='account.config.settings'

    header = fields.Char('Header')

    @api.multi
    def set_header_defaults(self):
        return self.env['ir.values'].sudo().set_default(
            'account.config.settings', 'header', self.header)

答案 1 :(得分:0)

尝试以下代码:

class AccountSettings(models.TransientModel):
_inherit='account.config.settings'

    @api.one
    def _get_header(self):

        header = fields.Char('Header',config_parameter='header.configuration')

您可以根据需要为属性config_parameter命名。它将用于从其他模型获取标头的值。

示例:

test = self.env['ir.config_parameter'].get_param('**header.configuration**', '').strip()

test将返回account.config.settings中的临时存储值。