I want to get the attribute (project_element_id) of a feature that I delete. I
found a way to get the feature IDs, but want a specific attribute, but get
error below. Assume maybe because the feature has been deleted so can't get
its attributes, so how do I get it just before the feature is deleted?
project_element_id = deleted_feature[project_element_id_index]
KeyError: '7'
****************************************************************************
def delete_from_jcms_dsk_local_database(self, site_planning_layer:
QgsVectorLayer):
element_type = 'FACILITY'
deleted_feature_ids =
site_planning_layer.editBuffer().deletedFeatureIds()
QgsMessageLog.logMessage(f"deleted_feature_ids: {deleted_feature_ids}",
"Placed Elements", Qgis.Info)
site_planning_layer_fields = site_planning_layer.fields()
project_element_id_index =
site_planning_layer_fields.indexFromName("project_element_id")
QgsMessageLog.logMessage(f"project_element_id index:
{project_element_id_index}", "Placed Elements", Qgis.Info)
for deleted_feature_id in deleted_feature_ids:
deleted_feature = site_planning_layer.getFeature(deleted_feature_id)
QgsMessageLog.logMessage(f"deleted_feature.hasGeometry:
{deleted_feature.hasGeometry()}", "Placed Elements", Qgis.Info)
deleted_feature_attributes =
site_planning_layer.getFeature(deleted_feature_id).attributes()
QgsMessageLog.logMessage(f"deleted_feature_attributes:
{deleted_feature_attributes}", "Placed Elements", Qgis.Info)
project_element_id = deleted_feature[project_element_id_index]
QgsMessageLog.logMessage(f"deleting: {site_planning_layer.name()} -
{project_element_id}", "Placed Elements", Qgis.Info)
Luke Catania
US Army ERDC-GRL
JCMS Site Planning Developer
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer