odoo 第一个模块

2017-01-11  本文已影响1350人  Echo剑心
Paste_Image.png

打开 myaddons/openacademy/manifest.py 文件
可以看到这是一些对该模块的一些描述,需要加载的数据什么的

controllers 文件夹算是路由吧
models 文件夹是model,ORM 对应了数据库中的表结构,可以简化书写SQL语句的烦恼
views 文件夹是视图,通过xml文件渲染

1. 修改model文件,ORM

打开 models.py文件

# -*- coding: utf-8 -*-
from odoo import models, fields, api
class openacademy(models.Model):   
   _name = 'openacademy.openacademy'    
  name = fields.Char(required=True)
  description = fields.Text()

一个类对应了数据库的一张表,需要继承自 models.Model 。

_name会对应数据库的表名,但是数据库中的名字略有不同的是, .会转换成_
也就是说 openacademy.openacdemy 会对应数据库中的 openacademy_openacademy

name 则是表的一个字段,数据类型是 Char类型

requried=True 表示是必填字段

好了,现在数据库有了,下一步就是数据的显示了

2. 重启服务器,进行设置

Paste_Image.png

进入设置,点击右边的激活开发者模式

然后进入应用列表页面

Paste_Image.png

点击左边的更新应用列表

更新完成后 在搜索框中搜索 openacademy ,这里要去掉前边的 模块选项

Paste_Image.png

没错,点击安装!

Paste_Image.png

打开数据库发现 openacademy_openacademy 已经创建
已经有了我们写的 name 和 description字段了,其余的字段是默认生成的

3. 修改xml文件用于显示

打开views/views.xml 文件

<odoo> 
    <data>
         <record model="{model name}" id="{record identifier}">
             <field name="{a field name}">{a value}</field>
         </record>
     </data>
</odoo>

这里已经说的很清楚了,于是按照我们写的进行替换就可以了

<odoo>  
  <data>        
        <record model="openacademy.openacademy" id="openacademy_view">     
                     <field name="name">Hello world</field>       
        </record>    
     </data>
</odoo>

重新更新模块,上面已经提到就不用重复了,值得一提的是:修改python文件是需要重启服务器的再升级模块,而只修改xml文件的话不用重启服务器,只要升级模块即

重新刷新数据库表~

Paste_Image.png

刚才写的数据已经写到数据库啦

再添加几条数据应该很简单了吧?

<record model="openacademy.openacademy" id="openacademy_view">
                     <field name="name">Hello world</field>
        </record>
        <record model="openacademy.openacademy" id="openacademy_view2">
                     <field name="name">Hello Odoo</field>
                     <field name="description">Odod 踩坑</field>
        </record>
        <record model="openacademy.openacademy" id="openacademy_view3">
                     <field name="name">Hello Python</field>
                     <field name="description">生活不易,我用Python</field>
        </record>

只要在xml中加上几句就好了啦

不要忘了升级模块!

Paste_Image.png
上一篇 下一篇

猜你喜欢

热点阅读