簡體   English   中英

如何在Odoo 11中覆蓋http.py方法?

[英]How to override http.py methods in Odoo 11?

我想為我的加載項覆蓋setup_db方法,因為在當前情況下,您不能從具有數據庫名稱的url獲取參數,並且如果用戶具有多個數據庫,則無法從隱身模式運行我的登錄鏈接。

我不希望用戶先進入/web/database/selector

我正在考慮用戶轉到/web/login?db=example_db_name ,然后以某種方式重定向到我的登錄鏈接。

(“以某種方式”,因為如果您鍵入它,它會將您重定向到/ web / login,因此我無法從登錄頁面添加重定向)。

我這樣做是假設odoo.conf用戶已經

db_name = False, dbfilter = .

如果您遇到相同的問題,這是我的解決方案。 它覆蓋了默認方法,通常這是一個不好的方法,但是在我們這種情況下,我們無能為力。

from odoo import http

class Rooting(http.Root):
    def setup_db(self, httprequest):
        db = httprequest.session.db
        # Check if session.db is legit
        if db:
            if db not in http.db_filter([db], httprequest=httprequest):
                httprequest.session.logout()
                db = None
        if not db:
            if 'db' in httprequest.args:
                db = httprequest.args['db']
                httprequest.session.db = db
        if not db:
            httprequest.session.db = http.db_monodb(httprequest)


http.Root.setup_db = Rooting.setup_db

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM