Python 如何检索现有模型数据并显示在自定义odoo网站模块页面上

Python 如何检索现有模型数据并显示在自定义odoo网站模块页面上,python,odoo-8,openerp-8,Python,Odoo 8,Openerp 8,我正在尝试从model project.project中检索项目数据,并在odoo 8中的自定义网站模块上显示 我无法通过控制器检索数据。请参阅下面的代码 models.py from openerp import models, fields, api #Just inherit default odoo project.project fields class project_category(models.Model): _name='project.project' _inher

我正在尝试从model project.project中检索项目数据,并在odoo 8中的自定义网站模块上显示

我无法通过控制器检索数据。请参阅下面的代码

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'
控制器.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([])
})

欢迎提出任何建议。谢谢。

解决了这个问题。我意识到数组是空的,因为我在调用执行读取操作的search()方法之前正在打印

您只能在调用项目后打印项目。搜索([])

更新控制器.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([])
     })
结果是:

项目。项目(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>


虽然奥多渲染了这个,但我现在得到了一个新的错误

QWebException:呈现模板“website.layout”时未定义foreach枚举器“projects”

谢谢

# -*- 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)

     })