تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
14741 أدوات العرض

My .py code is

from openerp.osv import fields, osv

class autobuy(osv.osv):

_name = "auto.buy"

_description = "AutoBuy Customers"

_columns = {

'name' : fields.char('Year',required=True),

'make': fields.char('Make', required=True),

'model' : fields.char('Model', required=True),

'service': fields.char('Service ID'),

}

class servicesales(osv.osv):

_name = "service.sale"

_description = "service"

_columns = {

'name': fields.char('Year', required=True),

'make': fields.char('Make', required=True),

'model': fields.char('Model', required=True),

'serviceid': fields.many2one('auto.buy','Service ID', select=True),

}

My xml code is

<openerp>

<data>

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

<field name="name">auto.buy.form</field>

<field name="model">auto.buy</field>

<field name="type">form</field>

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

<form string="Autobuy customer details">

<sheet>

<group>

<field name="service"/>

<field name="name"/>

<field name="make"/>

<field name="model"/>

</group>

</sheet>

</form>

</field>

</record>

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

<field name="name">autobuy.tree</field>

<field name="model">auto.buy</field>

<field name="type">tree</field>

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

<tree string="Autobuy customer details">

<field name="service"/>

<field name="name"/>

<field name="make"/>

<field name="model"/>

</tree>

</field>

</record>

<record model="ir.actions.act_window" id="auto_buy_form">

<field name="name">Autobuy Customers</field>

<field name="res_model">auto.buy</field>

</record>

<menuitem name="AutoBuy" id="Autobuy_menu"/>

<menuitem name="Autobuy" id="AutoBuy_group_menu" parent="Autobuy_menu"/>

<menuitem name="Autobuy Customers" parent="AutoBuy_group_menu" id="Autobuy_menu_mainform" action="auto_buy_form"/>

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

<field name="name">service.form</field>

<field name="model">service.sale</field>

<field name="type">form</field>

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

<form string="Service">

<sheet>

<group>

<field name="serviceid"/>

<field name="name"/>

<field name="make"/>

<field name="model"/>

</group>

</sheet>

</form>

</field>

</record>

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

<field name="name">service.tree</field>

<field name="model">service.sale</field>

<field name="type">tree</field>

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

<tree string="Service">

<field name="serviceid"/>

<field name="name"/>

<field name="make"/>

<field name="model"/>

</tree>

</field>

</record>

<record model="ir.actions.act_window" id="service_buy_form">

<field name="name">Service</field>

<field name="res_model">service.sale</field>

</record>

<menuitem name="Sales" id="Sales_group_menu" parent="Autobuy_menu"/>

<menuitem name="Slip" parent="Sales_group_menu" id="Sales_menu_mainform" action="service_buy_form"/>

</data>

</openerp>


I have set the field "serviceid" as many2one to call the to call the above class field "service"

'serviceid': fields.many2one('auto.buy','Service ID', select=True),

but it show the values of the "name" field of previous class and not the field "service"

How can I set this?

My second question is

I want to set a onchange function to auto fill the fields. Once I give the "serviceid" field it must call and auto fill the fields of based on the above class.

I will give all field value in the first class and once I give the "serviceid" all fields related to "serviceid" should be auto filled.

Please help me with the complete onchange function(with searching ID) and in xml.

Thanks


الصورة الرمزية
إهمال
الكاتب

def onchange_serviceid(self, cr, uid,name, serviceid):

result={'value':{'make':False}}

if serviceid:

service = self.pool.get('auto.buy').browse(cr, uid, name)

result['value']={'make':service.make.id}

return result

I have tried this code to auto fill but it shows error as

result['value']={'make':service.make.id}

AttributeError: 'bool' object has no attribute 'id'

How can I solve this

أفضل إجابة

dear Uppili Arivukkannu 

,

 add _rec_name= 'service'                                                       
  like this:

class autobuy(osv.osv):

_name = "auto.buy"

_rec_name= 'service'

_description = "AutoBuy Customers"

_columns = {

'name' : fields.char('Year',required=True),

'make': fields.char('Make', required=True),

'model' : fields.char('Model', required=True),

'service': fields.char('Service ID'),

}



the second question

define the onchange method like this:

def onchange_service(self, cr, uid, ids, serviceid=False, context=None):

     res= {}

     if serviceid:

         service_obj= self.pool.get('auto.buy')

         rec = service_obj.browse(cr, uid, serviceid)

         res= {'value':{'name':rec.name, 'model':rec.model, 'make':rec.make}}

     else:

         res= {'value':{'name':False, 'model':False, 'make':False}}

     return res







Then in xml call the onchange method like this:


<field name="serviceid" on_change="onchange_service(serviceid)"/>




I hoped I helped you


         

الصورة الرمزية
إهمال
الكاتب

Thanks for your answer. It works great.

المنشورات ذات الصلة الردود أدوات العرض النشاط
2
يوليو 16
4315
1
أبريل 20
5138
1
يونيو 18
3895
1
نوفمبر 17
7287
1
أغسطس 17
4104