Odoo Help


on_change method has no attribute

Ajeng Shilvie
on 12/5/14, 11:58 PM 1,004 views

Somebody please help me , i got an error while using on_change method ..

this is py code:

def _get_kehadiran_persen(self, cr, uid, ids, field, arg, context=None):
        val = self.browse(cr,uid,ids,context=context)
        result = {}
        for x in val:
            result[x.id] = (len(x.peserta_ids) / float(x.kursi)) * 100.0
        return result

def onchange_hitung_kuota(self, cr, uid, ids, kursi, peserta):
    val = {
           'value': {'kuota_kehadiran_persen': (len(peserta) / float(kursi)) * 100.0}
    if kursi <= 0:
        val = {
               'warning': {
                           'title': 'Perhatian',
                           'message': 'Jumlah kursi harus diatas 0'
    return val


this is xml code :

<record model="ir.ui.view" id="sesi_form_view">
             <field name="name">training.sesi.form</field>
             <field name="model">training.sesi</field>
             <field name="arch" type="xml">
                 <form string="Form Sesi" version="7.0">
                        <button name="draft_sesi" states="confirmed" string="Reset to Draft" icon="terp-stock_effects-object-colorize"/>
                        <button name="confirm_sesi" states="draft" string="Confirm" icon="gtk-apply"/>
                        <button name="done_sesi" states="confirmed" string="Mark as done" icon="gtk-apply"/>
                        <field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"draft":"red","confirmed":"blue"}'/>
                        <group col="4">
                            <field name="name" colspan="4"/>
                            <field name="instructur_id" />
                            <field name="kursus_id"/>
                            <field name="tanggal_mulai" />
                            <field name="durasi"/>
                            <field name="kursi" on_change="onchange_hitung_kuota(kursi, peserta_ids)"/>
                            <field name="active"/>
                            <field name="kuota_kehadiran_persen" widget="progressbar" colspan="4"/>
                            <field name="image"  widget="image" class="oe_avatar oe_left"/>
                        <separator string="Peserta" colspan="4"/>
                        <field name="peserta_ids" colspan="4" nolabel="1" on_change="onchange_hitung_kuota(kursi, peserta_ids)">
                            <tree string="Peserta" editable="top">
                                <field name="peserta_id"/>


i got this error message :

Traceback (most recent call last): File "/home/ajeng/odoo/odoo/openerp/http.py", line 500, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/ajeng/odoo/odoo/openerp/http.py", line 517, in dispatch result = self._call_function(**self.params) File "/home/ajeng/odoo/odoo/openerp/http.py", line 283, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/ajeng/odoo/odoo/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/home/ajeng/odoo/odoo/openerp/http.py", line 280, in checked_call return self.endpoint(*a, **kw) File "/home/ajeng/odoo/odoo/openerp/http.py", line 733, in __call__ return self.method(*args, **kw) File "/home/ajeng/odoo/odoo/openerp/http.py", line 376, in response_wrap response = f(*args, **kw) File "/home/ajeng/AddonsDeveloper/addons/web/controllers/main.py", line 975, in call_kw return self._call_kw(model, method, args, kwargs) File "/home/ajeng/AddonsDeveloper/addons/web/controllers/main.py", line 967, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/home/ajeng/odoo/odoo/openerp/api.py", line 237, in wrapper return old_api(self, *args, **kwargs) File "/home/ajeng/odoo/odoo/openerp/api.py", line 360, in old_api result = method(recs, *args, **kwargs) File "/home/ajeng/odoo/odoo/openerp/models.py", line 5729, in onchange record._onchange_eval(name, field_onchange[name], result) File "/home/ajeng/odoo/odoo/openerp/models.py", line 5663, in _onchange_eval method_res = getattr(self._model, method)(*args) AttributeError: 'training.sesi' object has no attribute 'onchange_hitung_kuota'

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.


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)


Asked: 12/5/14, 11:58 PM
Seen: 1004 times
Last updated: 3/16/15, 8:10 AM