美文网首页
odoo 第一个模块

odoo 第一个模块

作者: Echo剑心 | 来源:发表于2017-01-11 19:42 被阅读1350次
    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

    相关文章

      网友评论

          本文标题:odoo 第一个模块

          本文链接:https://www.haomeiwen.com/subject/vjvrbttx.html