如何在没有Odoo数据库存储的xml文件中使用计算字段

时间:2018-05-05 05:36:56

标签: xml odoo-11

首先,我创建一个计算字段来继承ir.model,如下所示:

    from odoo import api, fields, models, _
    from odoo.http import request

    class ir_models(models.Model):
      _inherit = 'ir.model'

    website_models = fields.Boolean('Allowed Website Model' ,compute='_is_website_models')

@api.depends('website_models')     
def _is_website_models(self):                 
    for models in self:
        fields = request.env['ir.model.fields'].search([('model_id', '=', models.id)])            
        for field in fields:
            if field.name == 'website_url':
                models.website_models = True

然后我想将此字段用于xml文件(进入视图)

    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
    <record id="view_res_config_settings_website_search_ept"      model="ir.ui.view">
    <field name="model">res.config.settings</field>
    <field name="inherit_id" ref="website.res_config_settings_view_form"/>
    <field name="arch" type="xml">
        <xpath expr="//div[@id='languages_setting']" position="after">
            <div class="col-xs-12 col-md-6 o_setting_box" id="model_settings">
                <div class="o_setting_right_pane">
                    <label string="Website Serach"/>
                    <div class="text-muted">
                         <b>Configure Models Name</b>                             
                    </div>
                    <field name="model_id" widget="many2many_tags" domain="[('website_models', '=', True)]"/>                                                                                                     
                </div>
            </div>
        </xpath>
    </field>
</record>       

但它不能在xml文件中使用,因为该字段不存储在数据库中。 然后如何使用它? 请给出答案。 并感谢先进的帮助。

1 个答案:

答案 0 :(得分:0)

在使用计算字段时,应在字段参数中提及store = True

website_models = fields.Boolean('Allowed Website Model',compute='_is_website_models',store=True)

它将字段存储在数据库中。