Odoo 8: просмотр другого модуля в методе, который запускается при установке/обновлении

Я написал модуль, который требует начального заполнения данных при его установке/обновлении. Метод (_initialize_history_prices) запускается успешно, но current_price_records, похоже, не имеет никаких значений, поэтому он ничего не делает (в таблице тысячи записей). Я не вижу ошибок во время работы. Что-то не так, или я не могу просматривать другие модули во время установки/обновления модуля, и мне следует прибегнуть к SQL?

Вот код с нерелевантными частями, усеченными для краткости

class pricelist_partnerinfo_history(models.Model):
    _name = 'pricelist.partnerinfo.history'

    @api.model
    def _initialize_history_prices(self):
        '''Add missing current prices in historical records.'''
        current_price_records = self.env['pricelist.partnerinfo'].browse()
        for rec in current_price_records:
            # Do stuff

прайс-лист_history_init.xml

<?xml version="1.0"?>

<openerp>
  <data>
    <!-- Initialize price list history records with current prices if they are missing in history -->
    <function model="pricelist.partnerinfo.history" name="_initialize_history_prices"/>
  </data>
</openerp>

__openerp__.py

'depends': ['product', 'purchase_automation'],
'data': [
    'pricelist_history_init.xml',
    'pricelist_view.xml',
],

person dgeorgiev    schedule 30.12.2016    source источник


Ответы (1)


в методе _initialize_history_prices() в current_price_records вы получите пустой набор записей pricelist.partnerinfo, потому что методBrowse() без идентификаторов вернет пустой набор записей, поэтому при вызове этого метода ничего не произойдет

чтобы получить все записи, вы можете использовать метод search()

@api.model
def _initialize_history_prices(self):
    '''Add missing current prices in historical records.'''
    current_price_records = self.env['pricelist.partnerinfo'].search([])
    for rec in current_price_records:
        # Do stuff
person Emipro Technologies Pvt. Ltd.    schedule 31.12.2016
comment
Спасибо, это сработало. Сначала я пытаюсь поэкспериментировать с erppeek, где просмотр без идентификаторов возвращает все записи. Я предполагаю, что есть разница в поведении, которую я не понимаю ››› model('pricelist.partnerinfo').browse([]) ‹RecordList 'pricelist.partnerinfo,length=13220'› - person dgeorgiev; 03.01.2017