跳至內容
選單
此問題已被標幟
1 回覆
3728 瀏覽次數

Been stuck on this for half an hour. I just dont see where i am wrong


classProductProduct(models.Model):
    _inherit = "product.product"

    product_website_document_ids = fields.One2many('documents.document', string='Variant website documents', compute='_compute_product_document_ids')

    def_compute_product_document_ids(self):
        product_website_tag = self.env.user.company_id.product_document_website_tag
        product_documents = self.env['documents.document'].search([('res_model', '=', self._name), ('res_id', '=', self.id), ('type', '=', 'binary'), ]).filtered(lambdadoc: product_website_tag in doc.tag_ids)
        product_template_documents = self.env['documents.document'].search([('res_model', '=', self.product_tmpl_id._name), ('res_id', '=', self.product_tmpl_id.id), ('type', '=', 'binary'), ]).filtered(lambdadoc: product_website_tag in doc.tag_ids)        all_docs = product_documents | product_template_documents
        self.product_website_document_ids = all_docs

when adding this field in a template, i get


ValueError: Compute method failed to assign product.product(35,).product_website_document_ids


The thing is ... when debugging, it just does not even enter the

def_compute_product_document_ids method ...

頭像
捨棄
作者 最佳答案

Ok i found the issue ... the def_compute_product_document_ids method was already defined in an another class in the inheritence tree, so that other method was called instead of this one.

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
10月 25
2913
1
9月 25
2889
3
7月 25
4219
1
5月 25
2308
4
5月 25
3678