У меня есть поле Many2one внутри модели, которая принадлежит отношению "One2many", и я хочу, чтобы это поле разрешало только те записи, которые удовлетворяют некоторым условиям на основе связанной модели.Как мне это сделать?
Я использую odoo 9 , и моя проблема заключается в следующем:
У меня есть модель, которая содержит два поля:
Many2one: для категории продукта.
One2many: для модели, представляющей продукт с соответствующей комиссией.
Идея заключается в том, что у партнера может быть список товаров, разрешенных к продаже, сгруппированных по категориям.А внутри каждой категории вы сможете составить список продуктов, принадлежащих к этой категории, и назначить каждому продукту индивидуальное значение комиссии.
Я полагаю, что я должен использовать домен для фильтрации продуктов, которые соответствуют этой категории, ноЯ не могу применить фильтр, основанный на поле "родительской" модели.
Это часть кода, который у меня есть.Пожалуйста, извините за любое несоответствие имени переменной, так как мой код частично на испанском, и я перевел его на ходу.Мои попытки решения не включены, поэтому вы должны иметь возможность работать с кодом помощи по своему усмотрению.
class allowed_products(models.Model):
_name = 'products.allowed'
categ_id = fields.Many2one(comodel_name='product.category', string='Product category', required=True)
products_and_commissions = fields.One2many(comodel_name='product.commission',
inverse_name='allowed_list_id', string='Products and their commissions')
partner_id = fields.Many2one(comodel_name='res.partner')
Ниже приведен класс, содержащий продукт с соответствующей комиссией (яхотите отфильтровать поле 'product_id' на основе 'category_id' из вышеуказанного класса)
class product_commission(models.Model):
_name = 'product.commission'
allowed_list_id = fields.Many2one(comodel_name='products.allowed')
value = fields.Float('Commission (%)', digits=(16,2), default=30.0, required=True)
#This is the field that should be filtered by corresponding category
product_id = fields.Many2one('product.product', string='Product', required=True)
Например:
Допустим, партнер "А" может продавать "Автомобили" (категория),После того, как я назначил категорию «Автомобили» в поле M2o, я хочу только добавить продукты «Автомобили» с соответствующими комиссиями в список продуктов-комиссий One2many.
То, что я получаю каждый раз,нефильтрованный список каждого продукта.Я прочитал несколько веток, но ни одна из них, похоже, не сработала для меня.
Любой совет будет принят с благодарностью!Спасибо <3 </p>