2016-12-30 28 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 owse()不IDS將返回空的記錄,所以,當這方法將調用什麼都不會發生

,讓你可以使用搜索中的所有記錄()方法

@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進行試驗,在沒有id的情況下瀏覽返回所有記錄。我猜想我的行爲存在差異 >>> model('pricelist.partnerinfo')。browse([]) dgeorgiev

相關問題