Как использовать вычисляемое поле в XML-файле без сохранения в базе данных в Odoo - PullRequest
0 голосов
/ 05 мая 2018

Сначала я создаю одно вычислительное поле для наследования 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 голосов
/ 11 марта 2019

При использовании поля вычисления, когда следует указать store = True в параметре поля.

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

Будет сохранено поле в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...