У меня есть 2 класса, первая из которых содержит функцию со списком, созданным в ней.odoo 8 переменная домена из другого класса
class the_first_class(models.Model)
_inherit = 'mrp.bom'
def first_function(self):
list1 = []
Второй класс, содержащий поле, где требуется указать домен на основе списка, созданного в «first_function» из «the_first_class». Примерно:
class second_class(models.Model)
_inherit = 'mrp.bom.line'
field1 = fields.Many2one('product.product', domain=[('id','in',list1)])
Есть ли способ, который я могу назвать «list1» следующим образом? Или, может быть, указать домен на основе функции? А затем вызвать переменную "list1" внутри функции, как:
self.env['mrp.bom'].list1
Полный код:
class bom_excl_list(models.Model):
_inherit = 'mrp.bom'
excl_list = fields.Many2many(comodel_name='product.template')
def methodA(self):
self.test = [17,18]
@api.onchange('bom_line_ids', 'excl_list')
def get_excl_list(self):
print self.excl_list
list1 = []
for i in self.excl_list:
list1.append(i.id)
list2 = []
for j in self.bom_line_ids.product_id:
list2.append(j.id)
class bom_filtered_products(models.Model):
_inherit = 'mrp.bom.line'
def methodB(self):
A = bom_excl_list()
A.methodA()
print "List", A.test
return [('id','=',A.test)]
filtered_products = fields.Many2one('product.product', domain=methodB)
views.xml:
<record model="ir.ui.view" id="view_bom_form">
<field name="name">mrp.bom.form</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//page[@string='Components']/field[@name='bom_line_ids']/tree/field[@name='product_id']" position="after">
<field name="filtered_products"/>
</xpath>
<xpath expr="//page[@string='Properties']/group" position="after">
<group>
<!-- <field name="excl_list" widget="many2many_checkboxes"/> -->
<field name="excl_list"/>
</group>
</xpath>
</field>
</record>
Привет, когда я выполняю этот код, я получаю следующее сообщение об ошибке: Сведения об ошибке: объект «NoneType» не имеет атрибута "Methoda» при разборе /root/git/odoo/modules/project1/views.xml:634, рядом с .... –
Jesse
введите свой полный код, что было вы реализуете файл xml ... –
Мой код такой же, как тот, который вы указали выше, за единственным исключением, что первый класс (Class_A) наследует от «mrp.bom» и второго класса (Class_B) от «mrp. bom.line ' Я использую файл views.xml для отображения других полей, объявленных в первом классе. Но это работало до того, как я добавил только новый метод (methodA) и список – Jesse