Odoo Help

0

Display fields.function on tree view

By
Diego Calzadilla
on 4/7/15, 12:49 PM 4,081 views

Hi everybody.

I need to display values from one2many field in tree view, so I decided to create functional field and declared it on my xml tree view:


    def get_product_brands(self, cr, uid, ids, fields, arg, context):

        res={}

        for record in self.browse(cr, uid, ids, context=None).application_data_product_template_ids:

            brands = record.brand.name or ''

        print brands

        res[record.id] = brands

        return res


and my field declaration:

'brands' : fields.function(get_product_brands, method=True, string="Product brands", type='char', store=True)

xml sample code:

<record model="ir.ui.view" id="product_tree_inherit">

     <field name="name">product.tree.inherit</field>

     <field name="model">product.template</field>

     <field name="inherit_id" ref="product.product_template_tree_view"/>

     <field name="arch" type="xml">

     <xpath expr="//field[@name='categ_id']" position="after"> 

         <field name="brands"/>

     </xpath>

   </field>

</record>



In my console, I can see correct records printed but I does not display anything in my tree view.


Can anyone help me?

2

Hi,

you need to write you function as like below.

def get_product_brands(self, cr, uid, ids, fields, arg, context):

    res={}

    for record in self.browse(cr, uid, ids):

        brands = ''

        for temp_obj in record.application_data_product_template_ids:

            brands = brands + record.brand.name or ''

        print brands

        res[record.id] = brands

return res


I hope you will get list of all brands.

Hi, thanks for you answer, in console, I can see correct values!!....but in the end I get this error log: File "/home/odoo/openerp/models.py", line 3146, in read self._read_from_database(stored) File "/home/odoo/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/home/odoo/openerp/models.py", line 3313, in _read_from_database vals[f] = res2[vals['id']] KeyError: 8

MEXYTUL, Diego Calzadilla
on 4/8/15, 1:57 PM

Can you put entire error log ? It is helpful to resolve it.

Emipro Technologies Pvt. Ltd.
on 4/9/15, 9:20 AM
1
Thu Ra
On 10/23/15, 3:27 AM

if you use the odoo v8


name = fields.Char(string="Name")
upper = fields.Char(compute='_compute_upper', inverse='_inverse_upper')

@api.depends('name')
def _compute_upper(self):
for rec in self:
self.upper = self.name.upper() if self.name else False

def _inverse_upper(self):
for rec in self:
self.name = self.upper.lower() if self.upper else False

Hope to help you.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)

Stats

Asked: 4/7/15, 12:49 PM
Seen: 4081 times
Last updated: 10/23/15, 3:27 AM