名称错误:名称'api'未定义。

4

我正在尝试按照Odoo文档和开发人员手册开发自己的第一个模块,使用“TO-DO任务”示例。但是,当我尝试向其中一个按钮添加功能时出现了问题。手册中说,我需要将以下代码添加到我的类文件(todo_model.py)中。

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

但是当我在Odoo上更新模块时,出现了以下信息:

NameError:名称'api'未定义

这是我的todo_model.py文件。
# -*- 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

Best regards.


1
我已经更正了缩进,请检查是否正确。 - Mohammad Yusuf
你认为为什么需要定义 api?你认为它会在哪里被定义?根据你的代码,我没有理由相信应该定义它。 - skyking
它可以工作了!我的函数还是不行,但现在没有错误了,我可以继续按照手册操作。非常感谢@MYGz。 - NMenam
我还在第二行添加了“api”导入。 - NMenam
我的PyCharm代码的缩进与发布的不同,所以我已经更正了缩进并将“api”添加到导入中,现在它可以工作了 :) - NMenam
1个回答

6

您忘记导入api

请尝试以下方法:

from openerp import api,models,fields

是的,我已经添加了,它起作用了,感谢您的澄清。 - NMenam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接