Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
10521 Представления

hello odoo community

in purchase_requstion.py file there is a function that use one2many(purchase_ids) to extract the value of connected field(purchase_ids->state)

def tender_cancel(self, cr, uid, ids, context=None):
    purchase_order_obj = self.pool.get('purchase.order')
    for purchase in self.browse(cr, uid, ids, context=context):
        for purchase_id in purchase.purchase_ids:
            if str(purchase_id.state) in('draft','wait'):
                purchase_order_obj.action_cancel(cr,uid,[purchase_id.id])
    self.write(cr, uid, ids, {'state': 'cancel', 'cancel_uid' : uid, 'cancel_date':time.strftime('%Y-%m-%d %H:%M:%S')})
    return True

I add function field and use the same function logic in line_ids field but it is not return anything, why?

def _compute_lin(self, cr, uid, ids, prop, unknow_none, context=None):
    res = {}
    for record in self.browse(cr, uid, ids, context=context):
        for rec in record.line_ids:
            if rec.product_id:
                res[rec.id] = 'yes'
            else:
                res[rec.id] = 'no'
    return res

'lin' : fields.function(_compute_lin ,string='Lin' , size=128 ,store=True ,type='char'),

oprnerp v6

Аватар
Отменить
Лучший ответ

In the res dictionary, it should not be the res[rec.id] but should be res[record.id]. Because rec.id will give you the ID of the o2m field which is wrong. You have to pass the ID of the current record which is record.id

 res[record.id] = 'yes'



Аватар
Отменить
Автор

thanks, that's work

Related Posts Ответы Просмотры Активность
2
окт. 20
3124
1
мар. 15
4678
1
мая 25
912
1
янв. 25
1647
2
сент. 22
9401