атрибут невидимый не работает в odoo - PullRequest
1 голос
/ 26 сентября 2019

Не понимаю, почему невидимый атрибут кнопки не может работать в связанном поле.Но когда невидимый атрибут, основанный на другом типе условия поля, любит логическое значение, это сработало.

Мой код в моем модуле или в моем файле python

'location_id'       : fields.many2one('stock.location', string='Storage'),
'measurement_type'  : fields.related('location_id','measurement_id', type="many2one", 
                      relation="flow.measure.type", string = "Measurement Type", readonly=True, store=True),

, и это мой сценарий наXML-файл

<field name="measurement_type" />
<field name="location_id" required="1" context="{'full':1}"
             on_change="onchange_location(location_id,measure_date)"
            domain="[('usage','not in',['view','transit','inventory']), 
            ('location_id','child_of',parent.location_id)]" />
<button name="open_flowmeter" string="Flowmeter Measurement"
            type="object" icon="fa-exchange" 
            attrs="{'invisible':[('measurement_type','!=',2)]}"/>

И тип данных для поля measure_type в базе данных является целым числом.

Моя цель - когда запись (тип измерения) равна 2, появляется кнопка.Но, что происходит, кнопка не появляется.И кнопка все равно не появляется вне зависимости от полученного значения записи

PS.Извините за мою плохую грамматику

1 Ответ

0 голосов
/ 26 сентября 2019

Обновите ваш код, чтобы использовать текущий API ORM.Старый API-способ объявления столбцов и связанных полей больше не должен использоваться.Ваш код показывает только фрагменты и не раскрывает, какие именно у вас есть пользовательские модели, поэтому мы не можем знать, как вы должны определить соответствующее поле.После преобразования это должно выглядеть примерно так:

location_id = fields.Many2one('stock.location', string='Storage')
measurement_type = fields.Integer(related='location_id.measurement_id.type', string = "Measurement Type", readonly=True, store=True)

При необходимости исправьте параметр related для поля измерения_типа ('location_id.measurement_id.type'), чтобы отразить структуру вашей модели для получения значения типа.

Руководство разработчика ORM API Odoo v9 можно найти здесь: https://www.odoo.com/documentation/9.0/reference/orm.html#related-fields. Вы можете найти проблему с github, касающуюся нового API, не поддерживающего старый способ API определения связанных полей: https://github.com/odoo/odoo/issues/3270

...