1
我在做一個測試,我需要模仿的onchange行爲,所以:如何在Odoo環境下向數據庫寫入所有緩存?
with self.env.do_in_onchange():
self.onefield = "blahblah"
但是,當一個退出with塊,數據不會寫入數據庫。我正在尋找某種self.env.cache.write_to_db()
。你知道嗎?
我在做一個測試,我需要模仿的onchange行爲,所以:如何在Odoo環境下向數據庫寫入所有緩存?
with self.env.do_in_onchange():
self.onefield = "blahblah"
但是,當一個退出with塊,數據不會寫入數據庫。我正在尋找某種self.env.cache.write_to_db()
。你知道嗎?
我找到了解決方案。
寫一條記錄到的緩存:
self.write(self._convert_to_write(self._cache))
爲了寫出所有環境的緩存:
models = dict()
for field, cache in self.env.cache.iteritems():
for id_, value in cache.iteritems():
models.setdefault(field.model_name, list())
models[field.model_name].append(id_)
for name, ids in models.iteritems():
for record in self.env[name].browse(ids):
record.write(record._convert_to_write(record._cache))
只爲信息:寫記錄的緩存爲我Odoo 9沒有工作的一部分。而不是,我執行此並且工作得很好: self.env.cr.commit() – MouTio