跳至内容
菜单
此问题已终结
1 回复
688 查看

Hello,

I added a field to 'res.country' table

from odoo import models, fields, _

class ResCountry(models.Model):
_inherit = 'res.country'

from_eu = fields.Boolean(string=_('From EU'))


I would like to fill this new field with True for countries of European Union using a xml file, but it's not working.
I suppose that it's due to the fact that, in metadata, I have a noupdate = True for all countries (and noupdate = False for my own tables).

How can I set this value (from_eu = True) for the European Comission countries via an xml file ?

Thanks in advance,

Boris


形象
丢弃

Actually, there is a model "res.country.group" by default already which allows you not only to define EU countries but also other regions, i.e. SEPA countries, or other groupings.

编写者

Thanks Christoph Farnleitner.

Before reading your answer, I discover this group and use it to compute if a country is in EU or not.

However, if I want to set a new field in a base model, how it is possible using a xml file?

Boris

最佳答案

You'll find answers here: https://www.odoo.com/forum/1/how-can-i-update-a-record-stored-with-the-attribute-noupdate-1-78133

i.e.

<!-- Allow changes on noupdate -->
<function name="write" model="ir.model.data"> <function name="search" model="ir.model.data"> <value eval="[('module', '=', 'base'), ('name', '=', 'at')]" /> </function> <value eval="{'noupdate': False}" /> </function> <record id="base.at" model="res.country"> <field name="from_eu">1</field> </record> <!-- Revoke noupdate change --> <function name="write" model="ir.model.data"> <function name="search" model="ir.model.data"> <value eval="[('module', '=', 'base'), ('name', '=', 'at')]" /> </function> <value eval="{'noupdate': True}" /> </function>

is one option that should work

形象
丢弃
相关帖文 回复 查看 活动
3
3月 24
8940
2
9月 22
3020
4
1月 21
20858
0
1月 20
2601
1
8月 24
2284