odoo開發筆記 -- 異常處理in resolve_deps field = model

場景描述:測試

更新代碼,重啓服務服務後,odoo後臺報錯,提示關鍵字:in resolve_deps field = model._fields[fname]  KeyError: 'entry_id'spa

沒有其餘信息了,一頭霧水,由於最近修改代碼文件比較多,代碼中用到字段「entry_id」的地方不少,一下不知是哪塊的問題。。。日誌

以下圖:code

從輸出的異常日誌能夠看出,是模型依賴的問題。因而開始網上查詢相似案例,找到以下一則:blog

https://www.odoo.com/zh_CN/forum/help-1/ip

跟本身狀況對比後,發現仍是有區別的!!!!開發

哎,怎麼整,笨辦法,備份當前代碼,回到到兩天前修改的代碼狀態。get

添加代碼,按照本地提交記錄,一步步測試!幸運的是,添加了第一次提交的代碼運行後,重啓服務,出現了相同的異常!string

這樣,處理範圍縮小了,檢查模型代碼,原來_rec_name值寫錯了,寫成了_rec_name = 'entry_id',而該模型下並無相應字段entry_id,因此服務啓動加載代碼編譯的時候,出現了上述錯誤。io

以下舉例:這裏_rec_name應該寫成TEST模型中存在的字段:cop_msg_id, 即:_rec_name = 'cop_msg_id'

class TEST(models.Model):
    """ 出錯的模型 """
    _name = 'test.test888'
    _description = 'test888' _rec_name = 'entry_id'

    cop_msg_id = fields.Char(string="******")
    name = fields.Char(string="******", size=18)

反思總結:

1. 及時提交代碼測試,養成完成一個功能模塊就提交測試的習慣。

2. 細心,在相似功能開發,爲了省力,複製代碼的時候,尤爲注意。

相關文章
相關標籤/搜索