Openerp 用开放式方法面对问题

Openerp 用开放式方法面对问题,openerp,openerp-7,openerp-8,Openerp,Openerp 7,Openerp 8,我面临着模块开发的问题,我开发了一个完整的学生姓名和学位,迄今为止,并成功地在网上显示。 现在,当我打算使用ORM方法时,我无法理解它是如何工作的以及ID等从何而来,就像我想从我的数据库表STUDENT中获取所有学生一样 请指导我如何使用简单示例中的ORM方法,如果有人可以使用简单ORM方法示例上传他们的模块,这将非常有用。查找记录的两种主要ORM方法是搜索和名称搜索(名称搜索只是使用一些预设搜索参数进行搜索) 搜索方法只返回ID,然后在浏览中使用这些ID来获取记录,因此一种非常常见的模式是:

我面临着模块开发的问题,我开发了一个完整的学生姓名和学位,迄今为止,并成功地在网上显示。 现在,当我打算使用ORM方法时,我无法理解它是如何工作的以及ID等从何而来,就像我想从我的数据库表
STUDENT
中获取所有学生一样


请指导我如何使用简单示例中的ORM方法,如果有人可以使用简单ORM方法示例上传他们的模块,这将非常有用。

查找记录的两种主要ORM方法是搜索和名称搜索(名称搜索只是使用一些预设搜索参数进行搜索)

搜索方法只返回ID,然后在浏览中使用这些ID来获取记录,因此一种非常常见的模式是:

student_ids = self.search(cr, uid, [('grade', '=', 'A'), ('enrolled', '=', True), ('gpa', '>=', 4.0), ('course.department', '=', 'Science')] context = context
students = self.browse(cr, uid, student_ids, context = context)
搜索中有点棘手的部分是搜索参数列表。这些是字段、运算符和值元组的列表。这里有一个隐式AND,因此如果需要OR,则需要使用“|”。注意,它将处理相关对象,我在示例中使用了course.department

搜索方法将返回ID列表或空列表。请注意,您可以在不测试的情况下将其传递到browse方法,因为browse方法将为列表中的每个id返回一个浏览记录列表,因此如果传入一个空的id列表,您将返回一个空的浏览记录列表


如果你现在对ORM一无所知,那么看看你是如何开发学生模块的?如果你现在就发布你所做的一切,那将是一件好事。我刚刚制作了一个名为、注册等的学生课堂,并在网上展示了一个,我刚开始学习openerp,所以目前我只学习课堂定义以及如何通过XML在网上展示,所以接下来我将学习或感谢adrian以一种很好的方式回答这个问题,,,,但我的问题是,当我用以下参数obj=open_partners()obj调用我的函数时,会显示cr和uid的错误,并显示全局名称cr和uid undefinded。这是一个主要错误,如果您能帮助解决这是一个python问题,而不是特定于OpenERP的问题,我将不胜感激。您正试图使用当前没有的两个参数调用您的方法。您需要发布您的源代码,以便能够就这一类销售(osv.osv)提供建议:_name='Sale'_columns={'name':fields.char('Company name',size=128)}def get_default_Company(self,cr,uid,context=None):Company_id=self.pool.get('res.users')。browse(cr,uid,uid.id),return company\u id Sale()这是源代码,请告诉我如何调用该方法,get\u default\u company()。您已经不远了。您的默认方法应该返回公司名称,而不是id,并且您只需在方法定义之后定义一个默认字典。注意,您将默认值设置为可调用,而不是可调用的结果,OpenERP将为您处理参数。但有一个问题,您确定要将公司名称存储为字符字段吗?通常情况下,您会使用manyOne来res.company,OpenERP将显示公司名称。默认定义为_defaults={'name':get_Default_company}