これを行う最も良い方法は、data
ファイルです。
- このコードは、インストール時に実行され、その後二度と
- 、一度に実行されるべきであることを示す
noupdate="1"
フラグ付きデータファイルを作成します
- あなた__openerp__ファイルにデータファイルを追加します。 、またはモジュールがすでにインストールされている場合は、モジュールが次にアップグレードされるときに実行されます。
- あなたが詳細については、ドキュメントhereを見ることができ、適切なPythonの方法
をトリガするために、データファイル内function
要素を定義しますが、最終結果はこのようなものになります。
__openerp__を.py
{
...
'data': [
...
'data/data.xml',
...
],
...
}
/data/data.xml
<openerp>
<data noupdate="1">
<function model="res.country" name="method_name"/>
</data>
</openerp>
/models/country.py
from openerp import models
import logging
_logger = logging.getLogger(__name__)
class ResCountry(models.Model):
_inherit = 'res.country'
@api.model
def method_name(self):
for country in self.search([]):
_logger.error(country.name)
あなたは時の機能を実行するインストールする必要がある場合は、リンクされたコードがベストです**と**アンインストールしかし、コードが一度だけ実行される必要がある場合は、必要以上に多くなります。データファイルの[function](https://www.odoo.com/documentation/8.0/reference/data.html#function)要素を 'noupdate =" 1 "'と組み合わせることで、簡単に目的の効果が得られます。 – travisw
確かに、私の練習で 'function'タグも使用しましたが、あなたが指摘したように、それはインストールケースだけを扱うことができます。私が参照したオプションは、「インストールとアンインストール」のシナリオではなく、「インストールとアンインストール」のシナリオを扱うことができます。 1つは必要ありません。 –