QSqlRelationalTableModel, QSortFilterProxyModel and QDataWidgetMapper

There are two tables with one to many relation companies and resources. The models above works fine with table views and combobox for the company names for the index in the second table.
For an selected row the form will be correct filled via the the QDataWidgetMapper.

Now I extend the game and extend it with sorting for columns in the tables

self.proxyModel = QSortFilterProxyModel()
self.proxyModel.setSourceModel(self.model)
self.setSortingEnabled(True)
self.setModel(self.proxyModel)

This gives two Side effects:

  • The combobox for the company names are not in the second table
  • If I sort one of the table and select a row for editing, I got an wrong rowid and as result a form for an wrong dataset

How can I fix the ‘row’ disaster?