我在模块开发方面遇到问题,到目前为止,我开发了一个名字和学位的完整学生,并成功地在网上展示。
现在当我开始使用ORM方法时,我无法理解它是如何工作的以及来自哪里等,就像我想从我的数据库表STUDENT
中获取所有学生一样。
请指导我如何使用简单示例使用ORM方法,如果有人可以使用简单的ORM方法示例上传模块,将会很有帮助。
答案 0 :(得分:1)
查找记录的两个主要ORM方法是搜索和name_search(name_search只是搜索一些预设的搜索参数)。
搜索方法只返回您在浏览中使用的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,所以你需要使用' |'如果你想要ORs。请注意,它将处理相关对象,我在示例中使用了course.department。
搜索方法将返回ID列表或空列表。请注意如何将其传递给browse方法而不进行测试,因为browse方法将返回列表中每个id的浏览记录列表,因此如果传入一个空的ID列表,则会返回一个空的浏览记录列表