下面是基于PyQt文档的以下代码:
model = QSqlRelationalTableModel()
model.setTable("employee")
model.setRelation(2, QSqlRelation("city", "id", "name"))
model.setRelation(3, QSqlRelation("country", "id", "name"))第三条线将把所有的城市联系起来。我如何过滤关系,而不是模型本身?例如,我希望城市有名字('X')。
发布于 2014-01-03 17:59:46
您必须通过过滤关系引用的模型,但是可以直接调用它;在您的示例中:
model.relationModel(2).setFilter("city like 'x'");AFAIK,过滤器正在影响在此关系中实例化的表(模型)的“副本”,它不影响同一表的任何其他实例。
事实上,你可以拥有这样的东西:
model.setRelation(2, QSqlRelation("city", "id", "name"))
model.setRelation(4, QSqlRelation("city", "id", "name"))
model.relationModel(2).setFilter("city like 'x'");
model.relationModel(4).setFilter("city like 'y'");关系(2)和(4)指向同一个表,但它们有两个不同的模型,每个模型都有自己的过滤器。
https://stackoverflow.com/questions/18716637
复制相似问题