[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