Я пытаюсь сгенерировать заказ на поставку из производственного заказа. Я создал много много полей для получения нескольких продуктов. Я хочу отправить несколько идентификаторов продуктов в свою пользовательскую функцию. Я могу отправить 1 значение, но отправка более одного дает ошибку, поскольку Expected singleton: product.template(4, 3)
.Как отправить несколько значений в поле many2many в odoo?
from openerp import models,fields,api
class generate_purchase_order(models.Model):
_name = 'mrp_to_purchase_order'
product_id = fields.Many2many('product.template',string='Products',required=True)
@api.multi
def generate_purchase_order2(self):
for wizard in self:
mrp_obj = self.env['mrp.production']
mrp_obj.generate_purchase_order(wizard.product_id.id) #function call
return { 'type': 'ir.actions.act_window_close'}
mrp_custom.py,
from openerp import models,api
class mrp_production(models.Model):
_inherit = 'mrp.production'
@api.multi
def generate_purchase_order(self,product_id):
purchase_line_obj = self.env['purchase.order.line']
context = self._context
for order in self.browse(context['active_ids']):
for line in order.bom_id.bom_line_ids:
if line.product_id.id != product_id:#problem line
continue
#rest of code
Я думаю, что он должен хранить product_id в виде списка, так что я могу извлечь его через цикл в вызываемой функции – Bhanukiran
Вы можете использовать набор записей в цикле и списке тоже, но набор записей проще, если вам нужен только список идентификаторов, то используйте product_id.ids, как один, он даст вам все связанные с ним идентификаторы. –
Я пробовал вот так: для записи in product_ids: print record.product_id.id – Bhanukiran