Skip to Content
Menu
This question has been flagged
1 Reply
1272 Views

I need to change partner_id in purchase.order based on another selectio field :

class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
po_type = fields.Selection([('internal', 'داخلية'), ('external', 'خارجية')], string="نوع المشتريات", required=1,
default='internal', readonly=check_foreign_group)
@api.onchange('po_type')
def _onchange_partner_id(self):
if self.po_type=='internal':
domain = [('is_foreign', '=', False)]

else:
domain=[('is_foreign', '=', True)]
return domain

partner_id = fields.Many2one(domain=_onchange_partner_id)

i do that but it doses not work

 

Avatar
Discard
Best Answer

Hello Asmma,

Returning a domain using onchange method has been deprecated in lastest versions.

Try this

@api.onchange("po_type")

def _onchange_po_type(self):

​if self.po_type == "internal":

​domain = [('is_foreign', '=', False)]

​else:

​domain = [('is_foreign', '=', True)]

self.partner_id.domain = domain


Also, you don't need

partner_id = fields.Many2one(domain=_onchange_partner_id)


Regards,

Karan BK

Avatar
Discard
Related Posts Replies Views Activity
2
Apr 25
2072
1
Feb 25
603
2
Feb 25
1077
2
Jan 25
1210
1
Dec 24
2151