2016-12-30 16 views
1

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

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

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 

pricelist_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', 
], 

ответ

1

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

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

@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 
+0

Спасибо, что работали. Сначала я пытаюсь экспериментировать с erppeek, где просмотр без идентификаторов возвращает все записи. Я думаю, что есть разница в поведении, которое я не понимаю >>> model ('pricelist.partnerinfo'). Browse ([]) dgeorgiev