You could add a specific item role (MySuperDuperRole = Qt::UserRole + x) that provides your delegate with the options (and thereby keep the sql queries in the model). The delegate will then fetch the list of options from the model using MySuperDuperRole.