2013-03-13 39 views
2

這裏是我的錯誤AttributeError的:「浮動」對象有沒有屬性「得到」

2013-03-13 10:31:50,358 11345 ERROR OpenERP_DB openerp.osv.osv: Uncaught exception 
Traceback (most recent call last): 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 131, in wrapper 
    return f(self, dbname, *args, **kwargs) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 197, in execute 
    res = self.execute_cr(cr, uid, obj, method, *args, **kw) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 185, in execute_cr 
    return getattr(object, method)(cr, uid, *args, **kw) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py", line 4479, in create 
    self.pool.get(object)._store_set_values(cr, user, ids, fields2, context) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py", line 4627, in _store_set_values 
    result = self._columns[f].get(cr, self, ids, f, SUPERUSER_ID, context=context) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/fields.py", line 1137, in get 
    elif result.get(id): 
AttributeError: 'float' object has no attribute 'get' 
2013-03-13 10:31:50,363 11345 ERROR OpenERP_DB openerp.netsvc: 'float' object has no attribute 'get' 
Traceback (most recent call last): 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/netsvc.py", line 293, in dispatch_rpc 
    result = ExportService.getService(service_name).dispatch(method, params) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/service/web_services.py", line 618, in dispatch 
    res = fn(db, uid, *params) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 188, in execute_kw 
    return self.execute(db, uid, obj, method, *args, **kw or {}) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 131, in wrapper 
    return f(self, dbname, *args, **kwargs) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 197, in execute 
    res = self.execute_cr(cr, uid, obj, method, *args, **kw) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/osv.py", line 185, in execute_cr 
    return getattr(object, method)(cr, uid, *args, **kw) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py", line 4479, in create 
    self.pool.get(object)._store_set_values(cr, user, ids, fields2, context) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py", line 4627, in _store_set_values 
    result = self._columns[f].get(cr, self, ids, f, SUPERUSER_ID, context=context) 
    File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/fields.py", line 1137, in get 
    elif result.get(id): 
AttributeError: 'float' object has no attribute 'get' 
2013-03-13 10:31:50,369 11345 INFO OpenERP_DB werkzeug: 127.0.0.1 - - [13/Mar/2013 10:31:50] "POST /web/dataset/call_kw HTTP/1.1" 200 - 

,這裏是我的模塊的源代碼

class namelistupdate(osv.osv): 

    def _invoiced_rate(self, cr, uid, ids, name, args, context): 
     amount_untaxed = 1 
     if amount_untaxed == 0: 
      res = 100.0 
     else: 
      res = 50.0 
     print (res) 
     return res 

    _name = "checkroll.namelist.update" 
    _description = "This table is for keeping Name list updates" 
    _columns = {   
     'date': fields.date("Date"), 
     'value': fields.function(_invoiced_rate, method=True, type='float', string='Test', store=True), 
    } 

namelistupdate() 

我在後臺表檢查also.they正確創建並fileds也正確manipulated.please檢查這一點,並告訴我什麼問題

這裏顯示我的view.xml文件

<record model="ir.ui.view" id="namelist_update_form"> 
     <field name="name">Name List Update</field> 
     <field name="model">checkroll.namelist.update</field> 
     <field name="type">form</field> 
     <field name="arch" type="xml"> 
      <form string="namelist_update"> 
       <field name="date" /> 
       <field name="value" /> 
      </form> 
     </field> 
    </record> 

    <record model="ir.ui.view" id="namelist_update_list"> 
     <field name="name">Name List Update</field> 
     <field name="model">checkroll.namelist.update</field> 
     <field name="type">tree</field> 
     <field name="arch" type="xml"> 
      <tree string="namelist_update"> 
       <field name="value" /> 
      </tree> 
     </field> 
    </record> 

    <record model="ir.actions.act_window" id="action_namelist_update"> 
     <field name="name">Name List Update</field> 
     <field name="res_model">checkroll.namelist.update</field> 
     <field name="view_type">form</field> 
     <field name="view_mode">tree,form</field> 
    </record> 
+1

錯誤是不夠,你必須做'result.get(ID)'之前指定一個float值'result'清晰,你也可以顯示錯誤產生的代碼 – avasal 2013-03-13 10:51:13

+0

@avasal:我想這就是問題所在;那是在OpenERP包內,所以這可能是該平臺的一個缺陷。 OP代碼中沒有任何內容似乎表明原因。 – 2013-03-13 10:54:32

+2

我注意到'_invoiced_rate'返回一個浮點值。也許它預計會返回一個映射呢? – 2013-03-13 10:55:24

回答

1
def _invoiced_rate(self, cr, uid, ids, name, args, context): 
    amount_untaxed = 1 
    record_id=ids[0] 
    res={record_id: 0.0} 
    if amount_untaxed == 0: 
     res[record_id] = 100.0 
    else: 
     res[record_id] = 50.0 
    print (res) 
    return res 

我必須要在字典對象的形式返回結果。關鍵應該是該記錄的ID。 只需更換我的功能

積分需要去Mr.Parth Gajjar @http://help.openerp.com論壇

相關問題