2015-11-18 90 views
2

我試圖檢索定製的網站模塊上odoo從模型project.project和顯示項目數據模型數據和顯示8.如何檢索現有的自定義odoo網站模塊頁面

我堅持上通過檢索數據控制器。見下面的代碼。

models.py

from openerp import models, fields, api 

#Just inherit default odoo project.project fields 

class project_category(models.Model): 

_name='project.project' 

_inherit='project.project' 

controllers.py

class Website(http.Controller): 
@http.route('/index',auth='public',website=True) 
def list(self,**kw): 
projects = http.request.env['project.project'] 
print "Test is below " 
print projects # this prints project.project() which i think its an empty array. My goal is to retrieve projects and render them on 

# template layout 
return http.request.render('website.layout', 
{'projects':projects.search([]) 
}) 

任何建議,最歡迎。謝謝。

回答

1

解決了這個問題。我意識到數組是空的,因爲我在調用執行讀取操作的search()方法之前打印。

只能調用projects.search後打印項目([])

更新Controllers.py

class Website(http.Controller): 
    @http.route('/index',auth='public',website=True) 
    def list(self,**kw): 
     Projects = http.request.env['project.project'] 
     print "Test is below " 
     arr = Projects.search([]) 
     print arr 
     return http.request.render('website.layout', 
       {'projects':Projects.search([]) 
    }) 

結果是:

project.project(21,18, 20,19,22)

然後我渲染這個:

templates.xml

<t t-foreach="projects" t-as="project"> 
    <strong><t t-esc="project.name" /></strong> 
    <b><t t-esc="project.description" /></b> 
</t> 

雖然Odoo呈現此,我現在得到一個新的錯誤

QWebException:的foreach枚舉器 '項目',而呈現模板 'website.layout'

沒有定義

謝謝

-1
# -*- coding: utf-8 -*- 
from openerp import SUPERUSER_ID 
from openerp.addons.web import http 
from openerp.http import request 


class WebsiteDemo(http.Controller): 

    @http.route('/portal', type='http', auth='user', website=True)# Auth is for logged in users 
    def display_project_data(self): 
     cr, context, pool = request.cr, request.context, request.registry 

     pro = pool.get('project.project') 
     pro_ids = pro.search(cr, SUPERUSER_ID, [], context=context) 
     pro_data = pro.browse(cr, SUPERUSER_ID, hr_employee_ids, context=context) 

     values = { 
        'projects' : pro_data 
        } 

     return request.website.render("website.project", values) 

    }) 
相關問題