Python 创建新按钮以更改新学员的状态

Python 创建新按钮以更改新学员的状态,python,openerp,Python,Openerp,我在创建新按钮以更改新学生的状态时遇到问题 首先,我创建了一个XML文件: ... <record model="ir.ui.view" id="student_form"> <field name="name">sim.student.form</field> <field name="model">sim.student</field> <field name="type">form</field> <

我在创建新按钮以更改新学生的状态时遇到问题

首先,我创建了一个XML文件:

...
<record model="ir.ui.view" id="student_form">
<field name="name">sim.student.form</field>
<field name="model">sim.student</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Student">
<field name="name"/>
<field name="student_name"/>
<field name="father_name"/>
<field name="gender"/>
<field name="contact_no"/>
<button name="setuju" states="draft" string="Approve" type="object"/>
</form>
</field>
</record>
...
然后我创建了一个init.py文件:

import sim
最后,我创建了一个openerp.py文件:

{
'name': 'Student Information Management',
'version': '0.1',
'category': 'Tools',
'description': """Data Siswa.""",
'author': 'Wasis Lukito',
'summary': 'Test, Test, dan Test',
'website': 'http://wasis.wordpress.com/',
'depends': ['base'],
#'init_xml': [],
#'update_xml': ['sim_view.xml'],
#'demo_xml': [],
#'installable': True,
'data': ['sim_view.xml',],
'css':['static/src/css/lunch.css'],
'demo': [],
'installable': True,
'application' : True,
'certificate' : '001292377792581874189',
'images': [],
}
但是,当我执行代码时,它产生了以下错误消息:

No handler found.
这是来自控制台的错误:

C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\pytz\tzinfo.py
:5: DeprecationWarning: the sets module is deprecated
ERROR: couldn't create the logfile directory. Logging to the standard output.
2013-01-15 15:21:39,977 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: OpenERP version 7
.0alpha-20121206-000102
2013-01-15 15:21:39,994 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: addons paths: C:\
Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\addons
2013-01-15 15:21:40,023 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database hostname
: localhost
2013-01-15 15:21:40,039 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database port: 54
32
2013-01-15 15:21:40,055 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database user: op
enpg
ERROR: couldn't create the logfile directory. Logging to the standard output.
2013-01-15 15:21:40,799 2136 ←[1;33m←[1;49mWARNING←[0m ? openerp.addons.google_d
ocs.google_docs: Please install latest gdata-python-client from http://code.goog
le.com/p/gdata-python-client/downloads/list
2013-01-15 15:21:41,548 2136 ←[1;37m←[1;41mCRITICAL←[0m ? openerp.modules.module
: Couldn't load module web
2013-01-15 15:21:41,568 2136 ←[1;37m←[1;41mCRITICAL←[0m ? openerp.modules.module
: unexpected indent (sim.py, line 10)
2013-01-15 15:21:41,585 2136 ←[1;31m←[1;49mERROR←[0m ? openerp.service: Failed t
o load server-wide module `web`.
The `web` module is provided by the addons found in the `openerp-web` project.
Maybe you forgot to add those addons in your addons_path configuration.
Traceback (most recent call last):
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
p\service\__init__.py", line 53, in load_server_wide_modules
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
p\modules\module.py", line 414, in load_openerp_module
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
addons\web\http.py", line 593, in wsgi_postload
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
addons\web\http.py", line 482, in __init__
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
addons\web\http.py", line 549, in _load_addons
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
p\modules\module.py", line 133, in load_module
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
addons\sim\__init__.py", line 1, in <module>
  File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
addons\sim\sim.py", line 10
     def setuju(self, cr, uid, ids, context=None):
    ^
 IndentationError: unexpected indent
2013-01-15 15:21:41,849 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.service.netrpc_ser
ver: starting NET-RPC service on 0.0.0.0:8070
2013-01-15 15:21:41,877 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.netsvc: Starting 1
 services
2013-01-15 15:21:41,897 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: OpenERP server is
 running, waiting for connections...
2013-01-15 15:21:41,913 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.service.wsgi_serve
r: HTTP service (werkzeug) running on 0.0.0.0:8069
C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\ \pytz\tzinfo.py
:5:弃用警告:集合模块已弃用
错误:无法创建日志文件目录。记录到标准输出。
2013-01-15 15:21:39,977 2136 ←[1;32米←[1;49mINFO←[0m?openerp:openerp版本7
.0alpha-20121206-000102
2013-01-15 15:21:39,994 2136 ←[1;32米←[1;49mINFO←[0m?openerp:插件路径:C:\
程序文件\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\addons
2013-01-15 15:21:40,023 2136 ←[1;32米←[1;49mINFO←[0m?openerp:数据库主机名
:localhost
2013-01-15 15:21:40,039 2136 ←[1;32米←[1;49mINFO←[0m?openerp:数据库端口:54
32
2013-01-15 15:21:40,055 2136 ←[1;32米←[1;49mINFO←[0m?openerp:数据库用户:op
enpg
错误:无法创建日志文件目录。正在记录到标准输出。
2013-01-15 15:21:40,799 2136 ←[1;33米←[1;49M警告←[0m?openerp.addons.google\d
ocs.google_文档:请从安装最新的gdata python客户端http://code.goog
le.com/p/gdata-python-client/downloads/list
2013-01-15 15:21:41,548 2136 ←[1;37米←[1;41mCRITICAL←[0m?openerp.modules.module
:无法加载模块web
2013-01-15 15:21:41,568 2136 ←[1;37米←[1;41mCRITICAL←[0m?openerp.modules.module
:意外缩进(sim.py,第10行)
2013-01-15 15:21:41,585 2136 ←[1;31米←[1;49梅罗←[0m?openerp.service:失败的t
o加载服务器范围的模块“web”。
“web”模块由“openerp web”项目中的插件提供。
也许你忘了在你的插件路径配置中添加这些插件。
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\。\opener
p\service\\ uuuuu init\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\。\opener
p\modules\module.py”,第414行,在load\u openerp\u模块中
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\
加载项\web\http.py”,第593行,在wsgi_postload中
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\
addons\web\http.py“,第482行,在\uuuu init中__
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\
插件\web\http.py”,第549行,在加载插件中
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\。\opener
p\modules\module.py”,第133行,加载模块
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\
插件\sim\\uuuuuuu init\uuuuuuuuuuuuuuuuu.py“,第1行,在
文件“C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\Server\OpenERP\
插件\sim\sim.py“,第10行
def setuju(自身、cr、uid、ID、上下文=无):
^
缩进错误:意外缩进
2013-01-15 15:21:41,849 2136 ←[1;32米←[1;49mINFO←[0m?openerp.service.netrpc_ser
版本:正在0.0.0.0:8070上启动NET-RPC服务
2013-01-15 15:21:41,877 2136 ←[1;32米←[1;49mINFO←[0m?openerp.netsvc:正在启动1
服务
2013-01-15 15:21:41,897 2136 ←[1;32米←[1;49mINFO←[0m?openerp:openerp服务器正在运行
正在运行,正在等待连接。。。
2013-01-15 15:21:41,913 2136 ←[1;32米←[1;49mINFO←[0m?openerp.service.wsgi_serve
r:HTTP服务(werkzeug)在0.0.0.0:8069上运行

错误似乎来自“def setuju(…”。我的脚本有什么问题?

如果您的模块没有证书,请从openerp文件中删除密钥“certificate”。另外,请从
setuju()
函数中删除工作流。我没有看到为您的类定义的工作流


从日志来看,错误是因为缩进错误。请检查在OpenERP上开发的
def setuju()

之前是否有正确的空格数,即使您有使用经验,您也会经常发现类似的情况。必须了解日志文件的位置并检查它们是否存在错误

这将取决于服务器的安装方式,但根据配置,它应该位于
C:\Program Files\OpenERP X.X\server\OpenERP server.log.
。如果不是,请在服务器配置文件中查找

如果您认真对待OpenERP开发,我建议您:

  • 停止服务器服务,改为在控制台终端中手动启动。它不仅为您提供有关警告和错误的即时信息,还将显示python
    print
    语句的结果,并让您进入
    (Pdb)

  • 安装你的虚拟机。使用Linux可能有一个学习过程,但是有很多帮助,从长远来看,你会发现在这个平台上获得帮助和解决问题要容易得多


  • 我尝试了你给出的代码,并且没有给出任何错误。你能提供控制台出现的错误吗?我使用windows,我不知道它是否在linux下工作,如何从控制台(cmd)提供错误..?我使用openerp 7 alpha,我真的对这个问题一无所知..我用控制台的错误消息编辑了它,现在我必须做什么..我用控制台的错误消息编辑了它,现在我必须做什么..我执行您的命令,然后我得到了新的错误..文件“C:\Program Files\openerp 7.0alpha-20121206-000102\Server\Server\openerp\addons\sim\sim.py”,第8行workflow=netsvc.LocalService('workflow')^IndentationError:应为缩进block@ws_123,正如DReispt所说,请删除tab并提供空格。谢谢,我不敢相信,错误是因为我使用了“tab”按钮..难以置信的openerp…再次感谢。我在控制台中编辑了它,并显示了错误消息,我现在必须做什么..?
    CRITICAL:意外缩进(sim.py,第行)
    
    C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\pytz\tzinfo.py
    :5: DeprecationWarning: the sets module is deprecated
    ERROR: couldn't create the logfile directory. Logging to the standard output.
    2013-01-15 15:21:39,977 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: OpenERP version 7
    .0alpha-20121206-000102
    2013-01-15 15:21:39,994 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: addons paths: C:\
    Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\addons
    2013-01-15 15:21:40,023 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database hostname
    : localhost
    2013-01-15 15:21:40,039 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database port: 54
    32
    2013-01-15 15:21:40,055 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: database user: op
    enpg
    ERROR: couldn't create the logfile directory. Logging to the standard output.
    2013-01-15 15:21:40,799 2136 ←[1;33m←[1;49mWARNING←[0m ? openerp.addons.google_d
    ocs.google_docs: Please install latest gdata-python-client from http://code.goog
    le.com/p/gdata-python-client/downloads/list
    2013-01-15 15:21:41,548 2136 ←[1;37m←[1;41mCRITICAL←[0m ? openerp.modules.module
    : Couldn't load module web
    2013-01-15 15:21:41,568 2136 ←[1;37m←[1;41mCRITICAL←[0m ? openerp.modules.module
    : unexpected indent (sim.py, line 10)
    2013-01-15 15:21:41,585 2136 ←[1;31m←[1;49mERROR←[0m ? openerp.service: Failed t
    o load server-wide module `web`.
    The `web` module is provided by the addons found in the `openerp-web` project.
    Maybe you forgot to add those addons in your addons_path configuration.
    Traceback (most recent call last):
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
    p\service\__init__.py", line 53, in load_server_wide_modules
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
    p\modules\module.py", line 414, in load_openerp_module
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
    addons\web\http.py", line 593, in wsgi_postload
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
    addons\web\http.py", line 482, in __init__
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
    addons\web\http.py", line 549, in _load_addons
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\.\opener
    p\modules\module.py", line 133, in load_module
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
    addons\sim\__init__.py", line 1, in <module>
      File "C:\Program Files\OpenERP 7.0alpha-20121206-000102\Server\server\openerp\
    addons\sim\sim.py", line 10
         def setuju(self, cr, uid, ids, context=None):
        ^
     IndentationError: unexpected indent
    2013-01-15 15:21:41,849 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.service.netrpc_ser
    ver: starting NET-RPC service on 0.0.0.0:8070
    2013-01-15 15:21:41,877 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.netsvc: Starting 1
     services
    2013-01-15 15:21:41,897 2136 ←[1;32m←[1;49mINFO←[0m ? openerp: OpenERP server is
     running, waiting for connections...
    2013-01-15 15:21:41,913 2136 ←[1;32m←[1;49mINFO←[0m ? openerp.service.wsgi_serve
    r: HTTP service (werkzeug) running on 0.0.0.0:8069