2016-12-28 6 views
1

「TO-DOタスク」の例を使用してodooのドキュメントと開発者のマニュアルに従って、odoo 9.0で最初のモジュールを開発しようとしていますが、私のボタンの1つに機能を追加してください。マニュアルでは、このコードをクラスファイル(todo_model.py)に追加する必要があります。NameError:name 'api'が定義されていません

@api.one 
def do_toggle_done(self): 
    self.is_done = not self.is_done 
    return True 

しかし、私はOdooにモジュールを更新するとき、私はこのメッセージを得た:

NameError: name 'api' is not defined

これは

# -*- encoding utf-8 -*- 
from openerp import models,fields 

class TodoTask(models.Model): 
    _name = "todo.task" 
    name = fields.Char('Description', required=True) 
    is_done = fields.Boolean('Done?') 
    active = fields.Boolean('Active?', default=True) 

    @api.one 
    def do_toggle_done(self): 
     self.is_done = not self.is_done 
     return True 

敬具私todo_model.pyです。

+1

私はインデントを修正しました。それが正しいかどうか確認してください。 – MYGz

+0

あなたは 'api'を定義すべき理由がありますか?それはどこで定義されると思いますか?私はあなたのコードを与えて定義する必要があると信じる理由はありません。 – skyking

+0

それは動作します!、私の機能はまだ動作しませんが、私は今、エラーを持っていない、私はマニュアルを続行することができます大変ありがとう@MYGz – NMenam

答えて

4

次を試してみてくださいAPI

をインポートするのを忘れ:

from openerp import api,models,fields 
+0

はい、追加しました。 – NMenam

関連する問題