Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
4 Trả lời
3670 Lượt xem

Hello,

In below code, product_id is my Many2many field of product1 table and price is a field of that table When i select more than one product in Many2many field, I get this error : ValueError: Expected singleton:
product1.product1(2, 4)  . can anyone help me.

Thanks in advance.


Code:


total = fields.Float("Total",readonly=True,compute="count")

product_id = fields.Many2many('product1.product1',string="Products")

@api.onchange('product_id')
def count(self):
for i in self:
i.total = i.product_id.price

Ảnh đại diện
Huỷ bỏ

Thanks, Mitul Singala it works.




Câu trả lời hay nhất

Hello,

in your code product_id is many2many field. and into method line: i.product_id.price, you get the multiple product ids. that's why you get singleton error.make below change into your code:

@api.onchange('product_id')
def count(self):
    for i in self:
        total = 0
        for prod in i.product_id:
            total += prod.price
        i.total = total
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi Ruturaj,

ValueError: Expected singleton: product1.product1(2, 4)  it means product_id return multiple records you can not directly assign values.

Example:

@api.onchange('product_id')
def count(self):
    for i in self:
        total = 0
        for p in i.product_id:
            total += p.price
        i.total = total
Thank You.
Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất


Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
4
thg 3 24
1642
4
thg 12 19
5332
2
thg 7 23
2358
1
thg 12 20
14494
5
thg 2 20
9079