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