我的课就是这样:
from openerp import tools
from openerp.osv import osv, fields
import requests
import logging
import json
_logger = logging.getLogger(__name__)
class stock_move(osv.Model):
_inherit = 'stock.move'
def create(self, cr, uid, vals, context=None):
new_id = super(stock_move, self).create(cr, uid, vals, context=context)
但是当我运行它时,我得到了这个:
File "/opt/odoo/ebuynow/ebn_oddjobs/models.py", line 15, in create
new_id = super(stock_move, self).create(cr, uid, vals, context=context)
UnboundLocalError: local variable 'stock_move' referenced before assignment
我很确定这是使用 super() 的正确方法,因为这段代码在另一个系统上运行良好。这个问题更多的是询问是否有人知道系统或python环境中可能导致它无法将stock_move识别为类名以调用父类的create()方法。
系统是ubuntu server 14.04,python 2.7.6。之前运行代码的系统是 ubuntu desktop 14.04,也运行 python 2.7.6。
我只是不明白为什么会发生这种情况。为什么 python 认为 stock_move 是一个局部变量?
编辑:
更改类名后,我得到:
new_id = super(stock_move_too, self).create(cr, uid, vals, context=context)
UnboundLocalError: local variable 'stock_move' referenced before assignment
stock_move 甚至根本没有使用,错误仍然显示?
编辑2:
问题是由于当我发出“sudo /etc/init.d/odoo-server restart”命令时 odoo-server 没有真正关闭引起的。一旦我终止了该进程,然后重新启动它,它就开始正常重新启动。