我得到錯誤:類型錯誤:搜索()至少需要4個參數(2給出)odoo類型錯誤:搜索()至少需要4個參數(2給出)
使用此項功能:
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
order='complete_name'
for index, expr in enumerate(args):
if expr[1] in ['like', 'ilike', 'not ilike', 'not like', '=like']:
args[index][2] = re.sub(r"\s+", '%', expr[2])
return super(stock_location, self).search(cr, uid, args, offset, limit, order, context, count)
上:
pickings = self.env['stock.picking'].search([('picking_type_id.id','=',picking_type_id),('state','=','assigned')])
我試圖改變這一功能新的API與self.env但蹊蹺的。
def search(self, args, offset=0, limit=None, order=None, context=None, count=False):
order='complete_name'
for index, expr in enumerate(args):
if expr[1] in ['like', 'ilike', 'not ilike', 'not like', '=like']:
args[index][2] = re.sub(r"\s+", '%', expr[2])
return super(stock_location, self).search(self.env, args, offset, limit, order, context, count
)
函數'def search'用於類stock_location(models.Model)中。所以我試圖將這個功能從舊的API改爲新的API。對於搜索採摘我使用這個功能:
def _compute_can_validate(self):
user_is_admin = self.env.user._is_admin()
user_is_network_manager = self.user_has_groups('stock.group_stock_network_manager')
owned_locations = []
if user_is_network_manager:
owned_locations = self.env['stock.location'].search([('user_ids','in',self.env.user.id),
('type_id.code','=','network')])
但是你意識到你傳遞的'list',並且這個類的實例意味着你只傳遞了兩個參數。你想做什麼? –
所以你想說,我不需要改變函數def搜索到self.env的新API?問題不是因爲這個? – fueggit
檢查我的答案,你有參數cr和uid甚至沒有被使用...刪除它們,它應該沒事 –