如果设置了包含外键的列的关系,则在QsqlRelationalTableModel
外键被解析为人类可读的字符串。在我的应用中,stationids被解析为站名。
出于某些目的,我也需要这个。 QsqlRelationalTableModel.data()
或QsqlRelationalTableModel.itemData()
仅返回displayValue(用于displayrole和editrole)。我如何获得相应的外键(indexValue)?
答案 0 :(得分:0)
QsqlRelationalTableModel.relationModel()返回一个QSqlTableModel对象,用于访问其列为外键的表。
http://doc.qt.io/qt-5/qsqlrelationaltablemodel.html#relationModel
如果displayValue是唯一的,可以通过setFilter()
relationModel()
方法找到相应的id(indexValue):
rm = self.relationModel(<index column>)
f = '<columnname> = "{}"'.format(<displayvalue>)
rm.setFilter(f)
id = rm.data(rm.index(0,0))