Raihan
Raihan

Reputation: 145

How to add many2one field in a file as data.xml file odoo 12

ive create a new category named x in the field category(categ_id) under the model product.template i want to load in to data.xml,How can i achieve this?

EDIT

I've tried like this and added data file in the manifest ,and i tried running in diffrent database but it doesnt show up,my xml code is below:


<odoo>
    <data>
        <record id="product_category_all" model="product.category">
            <field name="name">All</field>
        </record>

        <record id="product_category_1" model="product.category">
            <field name="parent_id" ref="product_category_all"/>
            <field name="name">MEDICINES</field>
            <field name="complete_name">All / MEDICINES</field>
        </record>
        <record id="product_category_2" model="product.category">
            <field name="parent_id" ref="product_category_all"/>
            <field name="name">LAB TEST</field>
            <field name="complete_name">All / LAB TEST</field>
        </record>
        <record id="product_category_3" model="product.category">
            <field name="parent_id" ref="product_category_all"/>
            <field name="name">Vaccine</field>
            <field name="complete_name">All / Vaccine</field>
        </record>
    </data>
</odoo>

Upvotes: 1

Views: 1297

Answers (1)

Kenly
Kenly

Reputation: 26698

To add the new category, you need to create a new product.category record.

There is an example in the product data file which defines two categories Saleable and Expenses as sub-categories of All category:

<record id="product_category_all" model="product.category">
    <field name="name">All</field>
</record>
<record id="product_category_1" model="product.category">
    <field name="parent_id" ref="product_category_all"/>
    <field name="name">Saleable</field>
</record>
<record id="cat_expense" model="product.category">
    <field name="parent_id" ref="product_category_all"/>
    <field name="name">Expenses</field>
</record>

Edit:

You can find at the Odoo Data Files documentation that the ref attribute is used to provide the value of many2one fields using a valid external id.

All category is declared in the product data file using product_category_all as an id. the external id should be:

product.product_category_all

complete_name is a computed char field with store set to True, its value should be computed and returned when requested then stored in the database.

You need to change the parent_id field definition and remove the complete_name field.

Example:

<record id="product_category_1" model="product.category">
    <field name="parent_id" ref="product.product_category_all"/>
    <field name="name">MEDICINES</field>
</record>
<record id="product_category_2" model="product.category">
    <field name="parent_id" ref="product.product_category_all"/>
    <field name="name">LAB TEST</field>
</record>
<record id="product_category_3" model="product.category">
    <field name="parent_id" ref="product.product_category_all"/>
    <field name="name">Vaccine</field>
</record>

Upvotes: 2

Related Questions