[Qgis-user] python qgis 3 adding features fails partly
Reginald
Reginald.Carlier at ingelmunster.be
Thu Feb 28 03:53:02 PST 2019
Thanks Michel for this explanation.
I can now indeed add the table to QGIS.
I used MultiPolygon in stead of Point and created the test table.
I changed my code to:
from qgis.PyQt.QtCore import *
from PyQt5.QtGui import *
perceellayer=None
premielayer=None
layers = [layer for layer in QgsProject.instance().mapLayers().values()]
for lyr in layers:
if lyr.name() == "Adpf1836007": #layer we use to copy existing geometry
perceellayer = lyr
if lyr.name() == "test":
premielayer = lyr
features = perceellayer.selectedFeatures()
geom = None
for f in features:
if geom == None:
geom = f.geometry()
else:
geom = geom.combine(f.geometry())
caps = premielayer.dataProvider().capabilities()
if caps & premielayer.dataProvider().AddFeatures:
# de laag is editeerbaar
feat = QgsFeature(premielayer.fields())
feat.setGeometry(geom)
result = iface.openFeatureForm(premielayer, feat, showModal=False)
print(result)
premielayer.addFeature(feat)
premielayer.updateFields()
print("klaar")
else:
print("Gelieve de laag met betreffende premies editeerbaar te maken door
op het potloodje te klikken")
When I select a parcel and run the code with the test layer set as editable
I get this error when I click OK:
2019-02-28T12:43:18 CRITICAL Laag test : PostGIS fout bij het
toevoegen van objecten: ERROR: null value in column "id" violates not-null
constraint
DETAIL: Failing row contains (null, null,
01060000208A7A0000010000000103000000010000000800000000FE43FAC654...).
I used 'testwaarde' as naam and 1 as id.
Any idea what is going wrong here?
Regards,
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-User-f4125267.html
More information about the Qgis-user
mailing list