27

ここで、コマンドを使用してモジュールをスキャフォールディングできるため、初期ファイルを手動で作成する必要がないことを読みました。しかし、そのようなコマンドはマスター (Odoo 開発ブランチ) では機能しません:

./oe scaffold Academy ../my-modules

oeopenerp ディレクトリにそのようなファイルが呼び出されていないためです。これは最新バージョンで変更されましたか?Odoo でモジュールを足場にするにはどうすればよいですか?

4

19 に答える 19

32

現在、odoo 10 以降のバージョンでは、odoo.py の代わりに odoo-bin を使用しています。

  1. シェルまたはターミナルで、ディレクトリを odoo フォルダーに変更します。にあるかもしれませんし/opt/odoo、 にあるかもしれません/home/odoo:

    cd /opt/odoo
    
  2. odoo.py スクリプトを使用して新しいモジュールを作成します。

    ./odoo.py scaffold my_new_module ./addons/
    

(ここで、my_new_module は新しいモジュールの名前で、./addons/ は Odoo アドオン ディレクトリです)

  1. ./addons/my_new_module/__openerp__.py ファイルを編集します。

    nano ./addons/my_new_module/__openerp__.py
    
  2. 名前フィールドを変更して、モジュールのわかりやすい名前を設定します (「Andrius の新しいモジュール」など)。説明とフィールドも変更します。そして、'mail' などの必要なモジュールをモジュールの依存関係のリストに追加します。

    'depends': ['base', 'mail'],
    
  3. models.py を編集

    nano ./addons/my_new_module/models.py
    
  4. my_new_module/models.py ファイルにコードを追加します。例:

from openerp import models, api

class FooterlessNotification(models.Model)
    _inherit = 'mail.notification'

    @api.model
    def get_signature_footer(self, user_id, res_model=None, res_id=None, context=None, user_signature=True):
        return ""

(例として、このコードは「mail.notification」モデルを拡張し、その get_signature_footer メソッドを空のフッターを返すものに置き換えます。)

  1. Odoo 設定からモジュールをインストールします。

そこで見つけるには、「モジュールリストの更新」オプションを使用する必要がある場合があります。

「モジュール リストの更新」オプションも見つからない場合は、現在のユーザーの設定で「技術的機能」チェックボックスを有効にする必要がある場合があります。

アプリケーションだけでなくモジュールを表示するには、タグの前にある小さな「x」をクリックして、検索ボックス フィルタからタグ「アプリケーション」を削除します。

于 2014-12-09T09:17:24.947 に答える
5

odoo.pyの代わりに使用oe:

./path/to/odoo/odoo.py scaffold my-module
于 2015-05-01T15:32:59.820 に答える
1

ODOO 9 を AWS のディレクトリ /opt/odoo にインストールしました。

まず、ディレクトリを変更します。

 cd /opt/odoo

次に実行しました:

 odoo.py scaffold modulename ./addons/

次のエラー メッセージが表示されます。

 odoo.py command not found

私のために働く正しいコマンドは次のとおりです。

 sudo python odoo.py scaffold modulename ./addons/

お役に立てれば。

于 2016-06-01T09:30:39.530 に答える
0

ソースまたはパッケージとしてインストールしましたか。

あなたがする必要があるソースのために

./odoo.py scaffold [module_name] [where_to_put_it]

パッケージから行う必要がある場合

 odoo.py scaffold [module_name] [where_to_put_it]

[where_to_put_it] は通常、アドオンのパスです。アドオンのパスは、インストール方法によって異なる場合があります。

addons フォルダーにモジュールを作成する必要はありません。ただし、そうすることをお勧めします。次の方法で新しいアドオン パスを追加できます。

odoo.py --addons-path=[where_to_put_it]

モジュール構造の参照およびモジュールのビルド用。

于 2016-08-02T14:32:22.247 に答える
0

Git clone odoo への最初のステップとして、あなたをお勧めします。ディレクトリ/フォルダーを作成し、ディレクトリ/フォルダーに odoo の Git クローンを作成します。その実行後、Python odoo.py scaffold アドオン test123. ディレクトリ/フォルダのアドオンに配置またはモジュールを追加して、odoo がモジュールを読み取れるようにします。

于 2017-05-25T02:34:16.623 に答える
0

最初に、odoo ソースのディレクトリを変更します: /opt/odoo

次に、次のコマンドを記述します: ./odoo-bin scaffold my_module_name /path-where-to-create

例: ./odoo-bin scaffold odoo_module /Desktop/Repository

于 2020-03-03T12:02:19.663 に答える
-2

このコードが役立つかもしれませんmoe.py名前を付けて、または好きなように保存します。

from openerp.cli import scaffold

sf = scaffold.Scaffold()

#sf.run(["--help"])

sf.run (["--init","Academy","--model","academy","--controller","academy","--web","--theme"])

Pythonプログラミングはまだ初心者です。誰かが引数をrun()関数に送る方法を改善できれば、それは素晴らしいことです。

于 2014-08-24T21:37:56.193 に答える