下面就是模型models.py的講解
在這個(gè)例子里面我們要求就是建立一個(gè)筆記本,筆記本有標(biāo)題薛耻,內(nèi)容输钩,分類豺型,時(shí)間,還有簡單的備注或者說是評(píng)論功能买乃。
classdemonote(models.Model):
#該模型的名字
_name ='demonote.demonote'
#在數(shù)據(jù)庫的中表名
_table ='d_note'
#一下都是自定義的數(shù)據(jù)
#標(biāo)題姻氨,使用fields方法實(shí)現(xiàn)orm映射關(guān)系。具體可以參考文檔或者查看源文件的方法介紹
#必填屬性的最后一個(gè)都是描述为牍。之后就是一些選填屬性了
#比如title哼绑,并沒有其他的必填屬性,第一個(gè)就是描述碉咆,因?yàn)樽兞棵褪菙?shù)據(jù)庫對(duì)應(yīng)字段的名字抖韩,之后幾個(gè)便是額外設(shè)定char類型字段的內(nèi)容
title = fields.Char(u'標(biāo)題',default='new note',require=True)
context = fields.Text(u'正文')
date = fields.Date(u'時(shí)間')
#這個(gè)是odoo自定義的 下拉菜單 的屬性,可以在view中直接生成一個(gè)下拉菜單
# [('這個(gè)是數(shù)據(jù)庫的名字','這個(gè)是在頁面顯示的名字'), ....]
type = fields.Selection([('work',u'工作'),('fun',u'娛樂'),('other',u'其他')],u'類型')
#這是一個(gè)一對(duì)多關(guān)系的設(shè)定疫铜,第一項(xiàng)是一對(duì)多關(guān)系中的‘多’的名字茂浮,
#第二項(xiàng)是‘多’所對(duì)應(yīng)的的字段,第三個(gè)是描述壳咕,就是在頁面上顯示的信息
comments = fields.One2many('comment.comment','demonote_id',u'評(píng)論')
demonote()
classcomment(models.Model):
_name ='comment.comment'
_table ='d_note_comment'
context = fields.Char(u'內(nèi)容',size=255)
time = fields.Date(u'發(fā)表時(shí)間')
#這里有一個(gè)多對(duì)一的關(guān)系席揽,第一項(xiàng)是多對(duì)一的一
demonote_id = fields.Many2one('demonote.demonote',u'文章',auto_join=True)
comment()
以上就完成了一個(gè)簡單的ORM映射的設(shè)置,下次說明一下如何讓他們?cè)谇芭_(tái)顯示出來谓厘。關(guān)于映射方面的更詳細(xì)的內(nèi)容請(qǐng)看官方文檔幌羞。
https://www.odoo.com/documentation/9.0/reference/orm.html
之后在odoo中找到對(duì)應(yīng)的模塊,如果沒安裝就安裝竟稳,安裝過了就更新一下属桦,再看看數(shù)據(jù)庫了面,是不是多了對(duì)應(yīng)的表和字段呢他爸?如果自動(dòng)生成了說明創(chuàng)建沒問題聂宾。