首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个新按钮以更改新学生的状态

创建一个新按钮以更改新学生的状态
EN

Stack Overflow用户
提问于 2013-01-15 06:48:57
回答 2查看 751关注 0票数 0

我有一个问题,创建一个新的按钮,以改变一个新学生的状态。

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

代码语言:javascript
复制
...
<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>
...

接下来,我创建了一个Python文件:

代码语言:javascript
复制
from osv import fields, osv
import time
import netsvc
import pooler

class sim_student(osv.osv):
    _name = "sim.student"
    _description = "Data Siswa"

    def setuju(self, cr, uid, ids, context=None):
        workflow = netsvc.LocalService('workflow')

        for name in ids:
            workflow.trg_create(uid, self._name, name, cr)

        return self.write(cr, uid, ids, {'state': 'confirmed'}, context=context)

    _columns = {
        'name': fields.char('Registration Number',size=256,required=True),
        'student_name': fields.char('Student Name',size=256,required=True),
        'father_name': fields.char('Father Name',size=256),
        'gender':fields.selection([('male','Male'),('female','Female')],'Gender'),
        'contact_no':fields.char('Contact Number',size=256),
        'state': fields.selection([('new', 'New'), \
                                    ('confirmed', 'Received'), \
                                    ('cancelled', 'Cancelled')], \
                                'Status', readonly=True, select=True)
    }

sim_student()

然后创建一个init.py文件:

代码语言:javascript
复制
import sim

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

代码语言:javascript
复制
{
'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': [],
}

但是,当我执行代码时,它会产生以下错误消息:

代码语言:javascript
复制
No handler found.

这是来自控制台的错误:

代码语言:javascript
复制
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

错误似乎来自"def setuju(.“)。我的剧本怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-15 08:25:48

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

从日志中,错误是因为缩进错误。请检查def setuju()前有正确的空格数

票数 1
EN

Stack Overflow用户

发布于 2013-01-15 08:58:26

要在OpenERP上进行开发,即使您有使用它的经验,您也会经常发现这样的情况。必须了解日志文件的位置,检查它们是否有错误。

这将取决于您如何安装服务器,但根据文档,它应该在C:\Program Files\OpenERP X.X\Server\openerp-server.log.上。如果没有,请在服务器配置文件中查找。

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

  1. 停止服务器服务并在控制台终端中手动启动它。它不仅为您提供有关警告和错误的即时信息,而且还将显示python print语句的结果,并让您进入(Pdb) 调试模式
  2. 安装您的Ubuntu中的OpenERP服务器 VM。它可能有一个学习曲线使用Linux,但有很多帮助,从长远来看,你会发现更容易获得帮助和解决问题的平台。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14332466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档