Odoo开发需要注意些什么?
在Odoo專欄中,我們分享了很多技術(shù)文章,也不禁在思考:有哪些點(diǎn)是需要我們注意,卻又很容易忽略的呢?這也是做Odoo開發(fā)時(shí)非常重要的內(nèi)容,畢竟一個(gè)小bug,真的很磨人啊!
所以本期想分享一下做開發(fā)時(shí),需要注意哪些問題~整理的或許并不全面,歡迎大家多多補(bǔ)充!
希望我們能一起規(guī)避更多的坑!
1、通過腳手架搭建項(xiàng)目框架:python odoo-bin scaffold 項(xiàng)目名稱 工程目錄
eg:在example目錄下建立demo項(xiàng)目: python odoo-bin scaffold demo example
2、建立odoo.conf文件,配置以下參數(shù):
3、如果自定義widget、視圖樣式等,需要在templates.xml中引用
<?xml version="1.0" encoding="UTF-8"?> <odoo><template id="assets_end" inherit_id="web.assets_backend"><xpath expr="." position="inside"><script src="/demo/static/src/js/change_form_controller.js" type="text/javascript"/><link href="/demo/static/src/scss/deo.scss" rel="stylesheet" type="text/scss"/></xpath></template> </odoo>4、如果需要額外依賴其他模塊或改造qweb后,在__manifest__.py中引用
'depends': ['base', 'account'], 'qweb': ['static/src/xml/change_demo.xml'],5、修改權(quán)限文件ir.model.access.csv之后,需要重新啟動(dòng)服務(wù),否則不生效。
6、修改js、css等靜態(tài)文件不用重新啟動(dòng)服務(wù),只需要刷新頁面。
7、修改xml文件后如果不想升級(jí),可以在odoo-bin啟動(dòng)文件Parameters增加以下配置,這樣只刷新頁面就能達(dá)到升級(jí)效果。
--dev=xml -c8、當(dāng)ORM可以實(shí)現(xiàn)的時(shí)候盡量使用ORM而不要直接寫SQL語句,因?yàn)樗赡軙?huì)繞過ORM的一些規(guī)則如權(quán)限、事務(wù)等,還會(huì)讓代碼變得難讀且不安全。
9、Odoo有自己的事務(wù)處理機(jī)制,不用手動(dòng)提交事務(wù)。
10、Odoo的計(jì)算字段默認(rèn)不存庫。
11、如果擴(kuò)展Odoo底層的res.user表,需要手動(dòng)在數(shù)據(jù)庫中增加擴(kuò)展字段,再進(jìn)行升級(jí),否則升級(jí)報(bào)錯(cuò)。
12、使用@api.onchange注解,可以監(jiān)聽當(dāng)前字段,但只有在頁面上修改才會(huì)觸發(fā),后臺(tái)修改不會(huì)觸發(fā)。
13、使用@api.depends注解,要加上所有的依賴字段,頁面修改或者后臺(tái)修改都會(huì)觸發(fā),需要保存后才顯示修改后的結(jié)果。
14、創(chuàng)建一個(gè)Model或者TransientModel類型的py文件,需要在相應(yīng)的__init__.py引用,并且在權(quán)限文件ir.model.access.csv賦予權(quán)限;創(chuàng)建一個(gè)AbstractModel類型的py文件只需要在__init__.py引用,不用賦予權(quán)限。
15、如果修改qweb新建按鈕,那么該按鈕對(duì)應(yīng)的方法前要加上@api.model注解
以上內(nèi)容歡迎批評(píng)指正~還有哪些注意事項(xiàng)?交給大家了!
總結(jié)
以上是生活随笔為你收集整理的Odoo开发需要注意些什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 资源文件类型,命名规则(
- 下一篇: 【转帖】时间管理(GTD)的黑洞