1 答案
Odoo document link for eval and ref attribute are:-
https://doc.odoo.com/6.0/developer/2_6_views_events/views/design_element/
https://doc.odoo.com/6.0/developer/5_16_data_serialization/xml_serialization/
eval attribute
The eval attribute evaluate its content as if it was Python code. This allows you to define values that are not strings.
Normally, content inside <field> tags are always evaluated as strings.
Example 1:
<field name="value">2.3</field>
This will evaluate to the string '2.3' and not the float 2.3
Example 2:
<field name="value">False</field>
This will evaluate to the string 'False' and not the boolean False
If you want to evaluate the value to a float, a boolean or another type, except string, you need to use the eval attribute:
<field name="value" eval="2.3" /> <field name="value" eval="False" />
ref attribute
The ref attribute allows to fill relations between the records :
<field name="company_id" ref="main_company"/>
The``company_id`` field is a many-to-one relation from the user object to the company object, and main_company is the id of to associate.
In xml using eval and ref attribute to assign the value for field and create new master record:-
Example:- addons/product/product_view.xml
<record id="product_uom_categ_vol" model="product.uom.categ">
<field name="name">Volume</field>
</record>
<record id="product_uom_gal" model="product.uom">
<field name="name">gal(s)</field>
<field name="category_id" ref="product_uom_categ_vol"/>
<field name="factor_inv" eval="3.78541"/>
<field name="uom_type">bigger</field>
</record>