PyQGIS - load PostGIS layer as editable

المشرف العام

Administrator
طاقم الإدارة
I can load a PostGIS layer on QGIS' map canvas but "Toggle Editing" button comes "inactive". How can I load vector layer as editable?

The code given below loads PostGIS layer on map canvas & "Toggle Editing" button comes "active" but once I run the script below in Python console; when I press "Toggle Editing" button, QGIS gives me an info message: "Start editing failed: Provider cannot be opened for editing":

sql = "(SELECT * FROM tablename)"uri = QgsDataSourceURI()uri.setConnection("localhost", "5432", "database", "postgres", "password")uri.setDataSource("", sql, "geom", "", "gid")vlayer = QgsVectorLayer(uri.uri(), "abc", "postgres")QgsMapLayerRegistry.instance().addMapLayer(vlayer)# should the layer be set as "active" ???vlayer.dataProvider()vlayer.dataProvider().capabilities()vlayer.startEditing()iface.actionToggleEditing().setEnabled(True)Can someone please give me a hint on how to load an editable layer programmatically?



أكثر...
 
أعلى