下面就是模型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中找到对应的模块,如果没安装就安装,安装过了就更新一下,再看看数据库了面,是不是多了对应的表和字段呢?如果自动生成了说明创建没问题。