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

Good day everyone.  I'm trying to override write in product class to replace the value of a field when user saves.

class ProductProduct(models.Model):
   _inherit = 'product.product'

   def write(self, vals):
       res = super(ProductProduct, self).write(vals)
       self.description_sale = res.part_number

       return res

Could anyone please point me the proper sintax?  thanks in advance.
Ảnh đại diện
Huỷ bỏ

Hello Avash,

The write method returns a Boolean and not a recordset/object. If you are trying to achieve set the description_sale value the sale as the part_number field. You can try:

self.description_sale = self.part_number

Could you provide more info on what you are trying to do, please.

Your code looks ok in terms of overriding.

Thanks,

Tác giả Câu trả lời hay nhất

Hello Jack, thanks for reply.   For some reason the forum does not allow me to reply to your message. 

What I'm doing is storing the value of part_number to description_sale anytime user changes part_number and this code seems to do the job.

class ProductTemplate(models.Model):
    _inherit = 'product.template'
    def write(self, vals):
        desc = ''
        if vals.get('part_number'):
            desc = vals.get('part_number')
        if desc:     
            vals.update({'description_sale': desc})
        res = super(ProductTemplate, self).write(vals)
       return res

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 9 18
2829
0
thg 5 16
3428
2
thg 12 15
3482
1
thg 3 15
5289
2
thg 4 19
2743