与ponyorm有多对多关系时如何选择记录

加埃塔诺

我是ponyorm的新手。

假设我有这两个类以及它们之间的多对多关系:

class Student(db.Entity):
    id = PrimaryKey(str)
    name = Required(str)
    courses = Set("Course")

class Course(db.Entity):
    id = PrimaryKey(str)
    name = Required(str)
    semester = Required(int)
    students = Set(Student)

我想选择一些特定学生要学习的课程。我要做的是:

student = Student.select(lambda s: s.id == id).get()
courses = Course.select(lambda c: c.students == student).get()

我得到这个错误:

Incomparable types 'Set of Student' and 'Student' in expression: c.students == student

正确的方法是什么?谢谢

蜕皮的

我不知道确切的图书馆,但我认为问题在于c.students指定了所有学生的集合,因此像这样测试平等性没有太大意义。

你可能会想你的第二个行改变这样的事情(我没有,虽然测试):

Course.select(lambda c: student in c.students).get()

这让我想知道实际上是否有更好的方法可以做到这一点。如果您只是想检索特定学生参加的课程,为什么不courses从变量中检索字段student呢?

就像是

student = Student.select(lambda s: s.id == id).get()
student.courses # do something with it

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

选择多对多关系的最新记录

如何显示与php pdo具有多对多和多对多关系的所有记录?

选择多对多关系

选择多对多关系

如何在多对多关系中找到所有相关记录都满足条件的记录?

Laravel Eloquent:如何选择多对多关系中未附加的记录?

当我更新多对多关系时,所有记录将获得相同的值

Laravel 5.5 使用多对多关系时如何获取最新的 N 条记录?

PonyORM 在 postgreSQL 中定义的模式上的多对多关系

如何使用具有多对多关系的活动记录信誉宝石

Django:如何创建视图以更新具有多对多关系的中间模型上的多个记录?

Laravel更新多对多关系中的所有记录

查询多对多关系确定值的所有记录

删除与EF6有多对多关系的实体记录

当表之间存在多对多关系时,获取多表2记录共有的表1记录

如何在具有多对多关系的SQL选择查询中排除行?

如何在EF多对多关系中添加新记录?

如何从2多对多关系中查找记录

如何从2多对多关系中查找关联记录

没有联结表时如何获取具有多对多关系的数据

EF CORE选择具有多对多关系的独特孙子

从具有多对多关系的多个表中进行选择

如何基于多对多关系从多个表中选择?

如何选择多对多关系中的行?(SQL)

在 Spring Boot 中执行 crud 操作时如何更新具有多对多关系的表

选择具有完全相同的多对多关联的记录

处理多对多关系时如何创建条目?

如何查询多对多关系?

如何保存多对多关系?