Python 如何检索现有模型数据并显示在自定义odoo网站模块页面上
我正在尝试从model project.project中检索项目数据,并在odoo 8中的自定义网站模块上显示 我无法通过控制器检索数据。请参阅下面的代码 models.pyPython 如何检索现有模型数据并显示在自定义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
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)
})