تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
3747 أدوات العرض

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
أكتوبر 25
2964
1
سبتمبر 25
2921
3
يوليو 25
4241
1
مايو 25
2344
4
مايو 25
3755