when click on Many2one brand_id field in view (xml), it throwing error. ValueError: invalid literal for int() with base 10: 'categry_id.base_category'
added a computed field base_category in product.category which type is Integer, with help of @SDBot here. first in the domain of brand_id i didn't used int() but when searched for error above, i tried to use int('categry_id.base_category') but still getting same error.
below are 2 models, first in which i created base_category value -thanks to @SDBot-, (it is created from a Char type field and storing value in Integer type field and even after update values manually through psql the error is same) second is where i am getting error in the domain filter.
please help to solve the problem.
class ProductCateg(models.Model):
_inherit = 'product.category'
level = fields.Integer(string='Level', compute='_compute_level', store=True)
base_category = fields.Integer('Base Cat', compute='_compute_basecat', store=True)
@api.depends('parent_id')
def _compute_level(self):
for record in self:
record.level = (record.parent_id.level or 0) + 1
@api.depends('parent_id')
def _compute_basecat(self):
for rec in self:
split_str = (rec.parent_path or '').split('/')
rec.base_category = int(split_str[1]) if len(split_str) > 1 else ''
class OrderItems(models.Model):
_name = 'tests.orderitems'
_description = "Tests Order Items"
store_id = fields.Many2one('tests.stores', string="Store", ondelete='cascade')
order_id = fields.Many2one('tests.testsorders')
categry_id = fields.Many2one('product.category', string="Category",
domain="[['complete_name', 'not like', '%Brands%']]")
items_id = fields.Many2one('tests.storeitems', string="Item",
domain="[['categs_id', '=', categry_id]]")
brand_id = fields.Many2one('product.category', string="Brand",
domain=[('base_category', '=', int('categry_id.base_category')),('complete_name', 'like', '%Brands%')])
You need to show the value within the tests.orderitems first:
categry_id = fields.Many2one('product.category', string="Category",
domain="[['complete_name', 'not like', '%Brands%']]")
base_category = fields.Integer('Base Cat', related='categry_id.base_category')
brand_id = fields.Many2one('product.category', string="Brand",
domain="[('base_category', '=', base_category),('complete_name', 'like', '%Brands%')])"