Skip to Content
Menu
This question has been flagged
1 Reply
16240 Views

Hi, i'm Heru.

I want to ask.

I make file, like this.

file1.py :


class pjbs(osv.osv):
    _name = 'ruhe.pjbs'
    _columns = {
        'buyer_id': fields.many2one('res.partner', 'Customer', required=True, domain=[('customer','=',True)]),
    }
    def view_sale_order(self, cr, uid, ids, context=None):
        mod_obj = self.pool.get('ir.model.data')
        so_ids = []
        val = self.browse(cr, uid, ids)
        print "&&&&&&&&&&&&&&", val.buyer_id.name


file1_view.xml :


<record id="smcus_pjbs_form" model="ir.ui.view">
    <field name="name">ruhe_pjbs_form</field>
    <field name="model">ruhe.pjbs</field>
    <field name="arch" type="xml">
        <button name="view_sale_order" string="View Sale Order" type="object" class="oe_highlight"
          states="sppjbc,leaseagc"/>
    </field>
</record>


when I execute, error.

Error message :

AttributeError: 'browse_record_list' object has no attribute 'buyer_id'


How I fix my problem ?

thanks in advance.



Avatar
Discard
Best Answer

Hi,

val = self.browse(cr, uid, ids) 

When execute above line after that "val" contain list of browseable records. Means "val" is type of list (Array) variable. So, you have to use it with subscript like val[0].buyer_id then you can get the value of the buyer_id of first object.

You can also get all objects using loop as like below.

val = self.browse(cr, uid, ids)
for obj in val:
    print obj.buyer_id.name

Above for loop will print buyer name of all objects.

I hope it is helpful to you.

Thanks.

Avatar
Discard
Author

wow, it's work . thank you very much for your solution Empiro ...

You're always welcome, heru !