博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一、OPENERP 的一个demo
阅读量:5927 次
发布时间:2019-06-19

本文共 3925 字,大约阅读时间需要 13 分钟。

安装好OPENERP后,使用 ps -aux|grep openerp

从输出的内容可以得到OPENERP的安装信息,

/usr/bin/python /usr/bin/openerp-server --config=/etc/openerp/openerp-server.conf --logfile=/var/log/openerp/openerp-server.log

其中包含python的安装目录,openerp的安装目录,配置文件所在目录和日志文件所在目录。

 打开openerp的配置文件(openerp-server.conf),可以看到相关的配置参数

1 [options]  2 ; This is the password that allows database operations:  3 ; admin_passwd = admin  4 db_host = False  5 db_port = False  6 db_user = openerp  7 db_password = False

采用apt方式安装的openerp,模块的目录在 :/usr/lib/pymodules/python2.7/openerp/addons

下面是我经过半天调试通的一个demo模块,

源地址:

 原地址中有很多需要注意的地方并没有写出来,下面是一步一步编辑的详细步骤,我会把自己遇到的问题及解决方案同时注明出来。

 

我们的目的是新建一个模块,包含一些学生选课的信息,具体说明请参见源地址,此处不再详述。

第一步,cd到上面说的模块目录,然后新建一个文件夹,此处命名为test1

第二步,在新建的test1目录下新建4个文件,__init__.py,__openerp__.py,lesson.py,lesson_view.xml

    文件的简要说明:__init__.py  是python module 必须的文件,做一些模块初始化的工作,__openerp__.py 是openerp需要的文件,其中包含了一些跟此模块相关的信息,lesson.py 是我们此例中使用的类,包括了一些课程的信息,lesson_view.xml文件是指明此模块在OPENERP中如何布局的文件。

 

第三步,__init__.py文件的内容

1 # -*- coding: utf-8 -*-2  import lesson #导入包含Python代码的所有文件和目录

 第一行的作用是指明该文件以utf-8格式编码,因为此处包含中文注释。

第四步,__openerp__.py文件的内容

1 # -*- coding: utf-8 -*- 2  { 3     "name" : "test1", #模块名 4     "version" : "1.0",        #模块版本 5     "description" : 'kevin kong's Demo', #模块说明 6     "author" : "kevin kong",    #作者 7     "website" : "http://www.kfx2007.com", #网址 8     "depends" : [],                      #依赖的模块 9     "update_xml" : ["lesson_view.xml"],  #模块更新的时候会读入的文件10     "installable" : True,                #可否安装                  11     "category":'Generic Modules/Others'  #模块类型12  }

这是一个python的字典,其中包含了一些关于此模块的信息。

第五步,lesson.py文件的内容:

1 # -*- coding: utf-8 -*- 2  from openerp.osv import fields, osv 3   4  class test1_lesson(osv.osv): 5      _name = 'test1.lesson' 6      _discription = 'test1 demo' 7      _columns = { 8         'name':fields.char( u'课程名',size=64,select=True), 9         'date_start':fields.date(u'开始日期',select=True),10         'total_day':fields.float(u'总天数',digits=(16,1)),11         'teacher':fields.many2one('res.users',u'授课老师'),12         'students':fields.many2many('res.partner',string=u'学生'),13         'price':fields.float(u'价格',digits=(16,2)),14          }15  test1_lesson()

第五步,lessson_view.xml

课程表单
form
test1.lesson
课程列表
tree
test1.lesson
课程
test1.lesson
form
form,tree

之后重新更新一下模块,就能看到自己编写的模块出现在未安装的模块中了。

拷贝上面的代码虽然能很快看到效果,但实际编写才发现问题多多,

如果你碰到下面的错误,可参考给出的解决方案。

1.“SyntaxError: Non-ASCII character“,文件中没有写”#-*-coding:utf-8 -*-“或拼写有错误

2.“You try to install module '' that depends on module 'lesson'. But the latter module is not available in your system“,网上说是没有引用相关的类,我自己实验的过程中其实不是这里的错误,其他地方的错误改正了,这个错误也就没了。一定记得,改过view后要通过update module才能正确的使用修改过的代码。

3.“AttributeError: 'NoneType' object has no attribute 'fields_view_get'“ 参考 

4. "Error occurred while validating the field(s) arch:Invalid XML forViewArchitecture!" :出现这个问题的原因多半是因为xml文件中出现了拼写错误,可以查看日志文件查找出错的行,切记拼写正确。另一个原因是module类写错,格式应该是模块的文件夹名+“."+module文件名的方式。

转载地址:http://uthvx.baihongyu.com/

你可能感兴趣的文章
Tomcat 8/9 基于APR库的高并发性能优化
查看>>
Nginx完整配置说明
查看>>
redis常用命令
查看>>
CentOS 7.4 安装 yum Zabbix 3.4
查看>>
MSTP学习笔记
查看>>
shell编程:程序出错继续执行还是出错停止执行?*
查看>>
无故arp简介
查看>>
android自定义简单Adapter-实现每列按钮事件
查看>>
spring mvc+mybatis配置多数据源文件
查看>>
我的友情链接
查看>>
Linux查找和替换目录下所有文件中字符串
查看>>
各种上传漏洞的利用方法
查看>>
Oracle_071_lesson_p16
查看>>
Count the string(kmp算法+dp)
查看>>
我的友情链接
查看>>
基于 4C’s 的网络营销策略
查看>>
耐得住寂寞方能不寂寞
查看>>
学习mysql细节整理(一)
查看>>
金蝶kis记账王账务处理过程中问题汇总
查看>>
Line Graph with Dual-scaled Axes using SVG and ...
查看>>