我想根据选择字段填充 Many2one 字段
I want to populate Many2one field based on Selection Field
我想根据选择字段填充 Customer/Vendor Many2one 字段,该字段有两个选择 1.Sale 订单,2.Purchase 订单。如果是销售订单,那么 Many2one 字段应该有来自 sale.order 模型的客户,如果是采购订单,那么 Many2one 字段应该有来自 purchase.order 模型的供应商。
从 odoo 导入模型,字段,api,_
class 产品拒绝(models.Model):
_name = 'product.rejection'
pr_type_of_order = fields.Selection([('SO', 'Sale Order'), ('PO', 'Purchase Order')], string="Order Type")
pr_customer_name = fields.Many2one('sale.order',string="Vendor/Customer")
pr_order_no = fields.Many2one('sale.order',string="PO/SO No.")
pr_rejection_date = fields.Date("Date Of Rejection")
pr_product_name = fields.Many2one('product.product',string='Product Name')
pr_presentation = fields.Char("Presentation")
pr_reason = fields.Text("Reason Of Rejection")
pr_notes = fields.Text("Receiving Notes")
pr_status = fields.Selection([('new','New'),('confirm','Confirmed')],string="Status")
@api.onchange('pr_type_of_order')
def update_customer(self):
result = {}
if self.pr_type_of_order == 'SO':
sale_customer_obj = self.env['sale.order']
sale_customer_ids = sale_customer_obj.search(['partner_id'])
for record in sale_customer_ids:
cust_name = []
cust_name.append(record.id)
result = {'domain': {'pr_customer_name': [('id', 'in', cust_name)]}}
return result
else:
if self.pr_type_of_order == 'PO':
sale_customer_obj = self.env['purchase.order']
sale_customer_ids = sale_customer_obj.search(['partner_id'])
for record in sale_customer_ids:
cust_name1 = []
cust_name1.append(record.id)
result = {'domain': {'pr_customer_name': [('id', 'in', cust_name1)]}}
return result
您选择 purchase.order
和 sale.order
的 m2o 现在从选择字段中,将 attrs
交给 .xml 文件。在其中尝试hide/unhide其他字段。现在从那个 m2o,你可以很容易地从客户/供应商那里得到过滤器。现在除此之外,如果您没有 sale.order
的任何其他用法,只需使用 'res.partner' 的 m2o 并根据选择字段值在该字段上设置域。
我想根据选择字段填充 Customer/Vendor Many2one 字段,该字段有两个选择 1.Sale 订单,2.Purchase 订单。如果是销售订单,那么 Many2one 字段应该有来自 sale.order 模型的客户,如果是采购订单,那么 Many2one 字段应该有来自 purchase.order 模型的供应商。
从 odoo 导入模型,字段,api,_
class 产品拒绝(models.Model):
_name = 'product.rejection'
pr_type_of_order = fields.Selection([('SO', 'Sale Order'), ('PO', 'Purchase Order')], string="Order Type")
pr_customer_name = fields.Many2one('sale.order',string="Vendor/Customer")
pr_order_no = fields.Many2one('sale.order',string="PO/SO No.")
pr_rejection_date = fields.Date("Date Of Rejection")
pr_product_name = fields.Many2one('product.product',string='Product Name')
pr_presentation = fields.Char("Presentation")
pr_reason = fields.Text("Reason Of Rejection")
pr_notes = fields.Text("Receiving Notes")
pr_status = fields.Selection([('new','New'),('confirm','Confirmed')],string="Status")
@api.onchange('pr_type_of_order')
def update_customer(self):
result = {}
if self.pr_type_of_order == 'SO':
sale_customer_obj = self.env['sale.order']
sale_customer_ids = sale_customer_obj.search(['partner_id'])
for record in sale_customer_ids:
cust_name = []
cust_name.append(record.id)
result = {'domain': {'pr_customer_name': [('id', 'in', cust_name)]}}
return result
else:
if self.pr_type_of_order == 'PO':
sale_customer_obj = self.env['purchase.order']
sale_customer_ids = sale_customer_obj.search(['partner_id'])
for record in sale_customer_ids:
cust_name1 = []
cust_name1.append(record.id)
result = {'domain': {'pr_customer_name': [('id', 'in', cust_name1)]}}
return result
您选择 purchase.order
和 sale.order
的 m2o 现在从选择字段中,将 attrs
交给 .xml 文件。在其中尝试hide/unhide其他字段。现在从那个 m2o,你可以很容易地从客户/供应商那里得到过滤器。现在除此之外,如果您没有 sale.order
的任何其他用法,只需使用 'res.partner' 的 m2o 并根据选择字段值在该字段上设置域。