odoo自定义模块开发(二)

下面就是模型models.py的讲解
在这个例子里面我们要求就是建立一个笔记本,笔记本有标题,内容,分类,时间,还有简单的备注或者说是评论功能。

classdemonote(models.Model):

    #该模型的名字

    _name ='demonote.demonote'

    #在数据库的中表名

    _table ='d_note'

    #一下都是自定义的数据

    #标题,使用fields方法实现orm映射关系。具体可以参考文档或者查看源文件的方法介绍

    #必填属性的最后一个都是描述。之后就是一些选填属性了

    #比如title,并没有其他的必填属性,第一个就是描述,因为变量名就是数据库对应字段的名字,之后几个便是额外设定char类型字段的内容

    title = fields.Char(u'标题',default='new note',require=True)

    context = fields.Text(u'正文')

    date = fields.Date(u'时间')

    #这个是odoo自定义的 下拉菜单 的属性,可以在view中直接生成一个下拉菜单

    # [('这个是数据库的名字','这个是在页面显示的名字'), ....]

    type = fields.Selection([('work',u'工作'),('fun',u'娱乐'),('other',u'其他')],u'类型')

    #这是一个一对多关系的设定,第一项是一对多关系中的‘多’的名字,
    #第二项是‘多’所对应的的字段,第三个是描述,就是在页面上显示的信息

    comments = fields.One2many('comment.comment','demonote_id',u'评论')

    demonote()

classcomment(models.Model):

    _name ='comment.comment'

    _table ='d_note_comment'

    context = fields.Char(u'内容',size=255)

    time = fields.Date(u'发表时间')

    #这里有一个多对一的关系,第一项是多对一的一

    demonote_id = fields.Many2one('demonote.demonote',u'文章',auto_join=True)

comment()

以上就完成了一个简单的ORM映射的设置,下次说明一下如何让他们在前台显示出来。关于映射方面的更详细的内容请看官方文档。

https://www.odoo.com/documentation/9.0/reference/orm.html

之后在odoo中找到对应的模块,如果没安装就安装,安装过了就更新一下,再看看数据库了面,是不是多了对应的表和字段呢?如果自动生成了说明创建没问题。

你可能感兴趣的:(odoo自定义模块开发(二))