2016-04-29 123 views
0

我開始學習odoo,我來自PHP背景。所以在調試PHP框架時,我知道通過查看網址(http://host/ {controller}/{method}/{parameter})調用的控制器和方法。Odoo調試應用程序

我不知道Odoo中的這項工作如何請參閱(http://host:8069/web?db= {db}#page = {page} & limit = 80 & view_type = {view_type} & model = {model} & action = {action_id})。也有一些時間(http://host:8069/web?db= {DB}#=的view_type看板&模型= {}模型& menu_id = {} menu_id行動& = 176)

是否有人可以指導我如何工作的,只有高水平。

真的很感謝。

感謝, 中號

回答

0

你已經問了一個很真實的查詢:

正如你在PHP中說,我們遵循這個模式,同時使線路和控制器:

http://host/ {controller}/{method}/{parameter}

作出這種模式的主要目的是使唯一的URI爲 每個資源。

這裏odoo裏沒有這樣的關於把控制器/方法放在url路由中的限制。

odoo給你的自由/權力,使路線和你知道的權力總是有責任, 所以它的開發人員的責任,以確保沒有兩個路線相互衝突。

同時url也應該SEO友好。

在我們的團隊我們通常會流模塊/型號/方法

例如: 我有:

  • 模塊名academy
  • 模塊有一個模型的教師[_name='academy.teacher']
  • 模塊有一個模型學生[_name='academy.student']
  • 模塊具有模型課程[_name='academy.course']
  • 用於顯示列表o ˚F教師,我們創建一個類似的 URL模式網格視圖:/academy/teachers
  • 爲了顯示列表中的個別老師,我們創建URL 樣模式:/academy/teacher
  • 創建老師:/academy/teacher/create
  • 爲了顯示列表學生在網格視圖中,我們創建像 URL模式:/academy/students
  • 爲了顯示列表中的個別老師,我們創建URL 樣模式:/academy/student
  • 對於在網格視圖中顯示的課程列表中,我們創建一個類似/academy/courses
  • 的 URL模式對於顯示列表,我們創建一個類似的URL 圖案中單獨老師:/academy/course

讓我們一個一個活生生的例子

  • 爲了顯示順序/shop/cart

    @http.route(['/shop/cart'], type='http', auth="public", methods=['POST'], website=True) 
        def cart(self, product_id, add_qty=1, set_qty=0, **kw): 
        pass 
    
  • 對於更新訂單/shop/cart/update:

    @http.route(['/shop/cart/update'], type='http', auth="public", methods=['POST'], website=True) 
        def cart_update(self, product_id, add_qty=1, set_qty=0, **kw): 
        pass 
    
  • 在情況下,如果你想創建一個JSON請求的處理程序type='json'爲 店購物車更新/shop/cart/update_json

    @http.route(['/shop/cart/update_json'], type='json', auth="public", methods=['POST'], website=True) 
    def cart_update_json(self, product_id, line_id=None, add_qty=None, set_qty=None, display=True): 
        pass 
    

至於你說的你是一個新手,我也建議你幾個有用的鏈接:

  1. FOR ODOO GuideLine.
  2. FOR ODOO WEBSITE MODULE
  3. FOR ODOO Http handler
  4. FOR ODOO BACKED MODULE

希望這可以幫助你在低估ODOO的URL模式。

+0

感謝Prakash,我在該控制器下創建了一個名爲test的自定義模塊,模型,模板在控制器,模型,數據文件夾下。在我的__openerp__.py中,數據字段被設置爲'data/templates.xml'。現在我使用return http.request.render('test.listing',{})從控制器呈現模板。在我的data/templates.xml中,我有上面有數據和openerp標籤。當我運行這個我得到錯誤'QWebTemplateNotFound:在系統中找不到外部ID:test.listing'。你能幫我解答我做錯了什麼嗎?萬分感激。 – user280960

+0

包含data/templates.xml。在opener.py中,並重新啓動您的服務器 – prakash

+0

嗨Prakash,我已經在__openerp__.py文件中包含:'data':['data/templates.xml'] – user280960