2015-12-14 2 views
1

J'ai un bouton dans Odoo et quand on clique dessus, il renvoie une erreur comme le montre l'image ci-dessous, veuillez aurais-je besoin d'aide pour faire ce travail enter image description hereOdoo MissingError sur le bouton Cliquez

class ratecard_multiple(models.Model): 
    # pudb.set_trace() 
    _name = 'ratecard.multiple' 
    _rec_name = 'display_name' 
    name = fields.Char(string='Multiple RateCard Product Name ', required=True) 
    code = fields.Char(string='Multiple RateCard Code ', readonly=True) 
    scheduled_for = fields.Integer(string='SCHEDULED FOR', default=1, track_visibility='always', store=True) 
    # scheduled_for = fields.Integer(string='SCHEDULED FOR', compute='_compute_scheduled_for',default=1 ,track_visibility='always',store=True) 
    min_weeks = fields.Integer(string="MINIMUM NO OF WEEKS", default=1, store=True) 
    max_weeks = fields.Integer(string="Maximum NO OF WEEKS", default=1, track_visibility='always', store=True) 

    multiple_ratecard_id = fields.Many2many(comodel_name='ratecard.sin.radio', 
              relation='ratecard_multiple_singular_rel', 
              column1='ratecard_multiple_id', 
              column2='ratecard_sin_radio_id', 
              string='RATECARDS') 


class ratecard_sin_radio(models.Model): 
    _name = 'ratecard.sin.radio' 
    _description = 'RATECARD SINGULAR RADIO ' 

    code = fields.Char(string='RADIO SINGULR RATECARD CODE', readonly=True) 
    name = fields.Char(string='NAME') 
    outlet_id = fields.Many2one(comodel_name='outlet', string='Outlet') 
    timeband_id = fields.Many2one(comodel_name='timeband', string='TimeBand') 

    def action_four_weeks_schedule_form(self,cr,uid,ids,context): 
     order_obj = self.pool.get('ratecard.multiple').browse(cr,uid,ids)[0] 
     print 'order_obj.scheduled_for' , order_obj.scheduled_for 
     print 'default_code order_obj.code' , order_obj.code 
     return { 
      'name':_("Four Week Schedule to Process"), 
      'view_mode': 'form', 
      'view_id': False, 
      'view_type': 'form', 
      'res_model': 'four.weeks.schedule', 
      'context':{'default_scheduled_for': order_obj.scheduled_for, 'default_code': order_obj.code}, 
      'type': 'ir.actions.act_window', 
      'nodestroy': True, 
      'target': 'new', 
      'domain': '[]', 
      'flags': {'form': {'action_buttons': True}} 

    } 

De l'avis du ratecard.multiple j'ai ce

<tree editable="bottom"> 
    <group colspan="2" col="2" > 
     <field name="name"/> 
     <field name='display_name'/> 
     <field name='code'/> 
     <field name="validity_date"/> 
     <field name="scheduled_for"/> 
     <field name="min_weeks"/> 
     <field name="max_weeks"/> 
     <!--<field name="multiple_ratecard_id_count"/>--> 
     <field name="multiple_ratecard_id_count" widget="statinfo"/> 


     <!--<field name="allocate_schedule_count"/>--> 
     <!--<field name='company_id'/>--> 
      </group> 
    <field name='multiple_ratecard_id' nolabel="1" options="{'reload_on_button': true}"> <!-- widget="many2many"--> 
    <tree string="ALLOCATE SPOTS" editable="bottom" > 
      <button name="action_four_weeks_schedule_form" string="CREATE SCHEDULE" type="object" /> 

         <field name="code"/> 
         <field name="name"/> 
         <field name="outlet_id" on_change="onchange_outlet(outlet_id)" placeholder="OUTLET"/> 
      </tree> 
    </field> 
</tree> 

dans le terminal en mode débogage cette erreur est renvoyée

2015-12-14 09:53:50,615 13824 ERROR ragtimeorder openerp.http: Exception during JSON request handling. 
Traceback (most recent call last): 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 537, in _handle_exception 
    return super(JsonRequest, self)._handle_exception(exception) 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 574, in dispatch 
    result = self._call_function(**self.params) 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 310, in _call_function 
    return checked_call(self.db, *args, **kwargs) 
    File "/home/daniel/CRUCIAL/odoo/openerp/service/model.py", line 118, in wrapper 
    return f(dbname, *args, **kwargs) 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 307, in checked_call 
    return self.endpoint(*a, **kw) 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 803, in __call__ 
    return self.method(*args, **kw) 
    File "/home/daniel/CRUCIAL/odoo/openerp/http.py", line 403, in response_wrap 
    response = f(*args, **kw) 
    File "/home/daniel/CRUCIAL/odoo/addons/web/controllers/main.py", line 948, in call_button 
    action = self._call_kw(model, method, args, {}) 
    File "/home/daniel/CRUCIAL/odoo/addons/web/controllers/main.py", line 936, in _call_kw 
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) 
    File "/home/daniel/CRUCIAL/odoo/openerp/api.py", line 256, in wrapper 
    return old_api(self, *args, **kwargs) 
    File "/home/daniel/CRUCIAL/rag_modules/ragtimeorder_modules/ragtimeorder/models/ragdefaults.py", line 1055, in action_four_weeks_schedule_form 
    print 'order_obj ' , order_obj 
    File "/home/daniel/CRUCIAL/odoo/openerp/fields.py", line 825, in __get__ 
    return record._cache[self] 
    File "/home/daniel/CRUCIAL/odoo/openerp/models.py", line 6024, in __getitem__ 
    return value.get() if isinstance(value, SpecialValue) else value 
    File "/home/daniel/CRUCIAL/odoo/openerp/fields.py", line 55, in get 
    raise self.exception 
MissingError: ('MissingError', u'One of the documents you are trying to access has been deleted, please try again after refreshing.') 
+0

Actualisez la page lors de la mise à niveau d'un module. – Zety

Répondre

1

Cette erreur se produit lorsque vous essayez de rechercher ou d'accéder à un ID d'enregistrement qui n'existe pas, je pense que votre problème est peut-être d'ici

order_obj = self.pool.get('ratecard.multiple').browse(cr,uid,ids)[0] 

Vérifiez l'ID que vous passez à la fonction, il probablement doesn n'existe pas dans la base de données, vous pouvez l'imprimer sur la console ou un fichier journal, puis inspecter votre base de données avec psql et le voir existe.