Openerp odoo通过xmlid扩展现有数据文件
openerp/addons/base/res/res\u country\u data.xml文件中有记录:Openerp odoo通过xmlid扩展现有数据文件,openerp,odoo-9,Openerp,Odoo 9,openerp/addons/base/res/res\u country\u data.xml文件中有记录: <?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> <record id="ae" model="res.country"> <field name="name">United Arab Emi
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="ae" model="res.country">
<field name="name">United Arab Emirates</field>
<field name="code">ae</field>
<field file="base/static/img/country_flags/ae.png" name="image" type="base64" />
<field name="currency_id" ref="AED" />
<field eval="971" name="phone_code" />
</record>
提前谢谢你 我建议对您的范围使用更好的xml ID,然后尝试在xml文件中获得适当的顺序,如:
629
629
629
感谢您指出如何获取外部xml id,我已经搜索了一天了!真的很有帮助!您介意告诉我如何将引用作为列表/数组吗?我的ean_范围是one2many,目前它指向“int”,我认为ean_range.id是不可编辑的ParseError在解析/mnt/extra addons/instant_country/data.xml:8,near
时,解析错误:“'int'对象不可编辑”。能否将res.country
和res.country.ean_range
的类定义添加到您的问题中?我需要查看字段定义以正确处理one2many关系进行了适当的更新,再次感谢您的帮助!实际上,你的模型概念似乎不正确。你确定要在这里使用一个2many关系而不是多个2many关系吗?好的,让我再次编辑我的答案,希望是最后一次;-)
<openerp>
<data>
<!-- extend data from country_data.xml -->
<record id="ae_range" model="res.country">
<field name="ean_range" ref="res.country.ean_range">629</field>
</record>
<!-- data for my model country model must be pointing to -->
<record id="629" model="res.country.ean_range">
<field name="range_start">629</field>
<field name="range_end">629</field>
<field name="name">629</field>
</record>
<record id="ae_range" model="res.country">
<field name="inherit_id" ref="res.country.ean_range"/>
...
</record>
class InstantProductTemplate(models.Model):
_name = 'product.template'
_inherit = 'product.template'
country_of_origin = fields.Many2one('res.country',
string='Country of origin',
default="_guess_country",
store=True)
class InstantCountryRanges(models.Model):
_name = 'res.country'
_inherit = 'res.country'
ean_range = fields.One2many('res.country.ean_range', 'name')
class InstantCountry(models.Model):
_name = 'res.country.ean_range'
name = fields.Char()
range_start = fields.Integer("Range start")
range_end = fields.Integer("Range end")