def setData(self, index, value, role=Qt.EditRole): if role == Qt.EditRole: mycolumn = index.column() if mycolumn in self.editables: (query, filter_cols) = self.editables[mycolumn] values = [value] for col in filter_cols: filter_value = self.index(index.row(), col).data() values.append(filter_value) q = QSqlQuery(query.format(*values)) result = q.exec_() if result: self.query().exec_() else: print(self.query().lastError().text()) return result return QSqlQueryModel.setData(self, index, value, role)