Deseo crear un campo que se actualice automáticamente con la fecha y hora actuales cuando se realizan modificaciones en una función.
Estoy usando QGIS 3.4 y estoy probando esto usando un shapefile.
Después de @Joseph La respuesta de esta pregunta He intentado actualizar su script para que funcione en QGIS 3.4 según sus instrucciones (si las he seguido correctamente, ¡no garantizado!) a esto:
layer = qgis.utils.iface.activeLayer()
def update():
field = layer.fields().lookupField('fieldName')
e = QgsExpression( " $now " )
e.prepare( layer.pendingFields() )
for feat in layer.selectedFeatures():
feat[field] = e.evaluate( feat )
layer.updateFeature( feat )
layer.attributeValueChanged.connect(update)
Sin embargo, esto devuelve el siguiente error:
2018-11-29T11:13:00 WARNING Traceback (most recent call last):
File "", line 4, in update
AttributeError: 'QgsVectorLayer' object has no attribute 'pendingFields'
¿Qué pasa aquí?
¿Funcionará también con las modificaciones de geometría o sólo con las de atributos?
¿Funcionará también para una capa SpatiaLite?