You need to set the feature if you want to access the feature fields. QgsExpressionContext::setFeature( const QgsFeature &feature )
If you want the form feature values you need to use the current_value or the current_feature functions. Regards. On Mon, Nov 7, 2022 at 11:27 AM Andreas Neumann via QGIS-Developer <qgis-developer@lists.osgeo.org> wrote: > > Hi, > > I am trying to implement a Python action in "form" and "feature" action scope > that uses a QGIS expression, but fail to get a valid expression calculation. > > Here is my code so far: > > from qgis.PyQt.QtWidgets import * > from qgis.core import QgsMessageLog > > expContext = QgsExpressionContext() > expContext.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(form.layer())) > expContext.appendScope(QgsExpressionContextUtils.formScope(form.feature(),'SingleEditMode')) > > exp = QgsExpression('t_id') > > expResult = exp.evaluate(expContext) > QgsMessageLog.logMessage('Expression Result=' + str(expResult)) > > > So even the most basic expression (getting a field value) will not work in my > code. I always get "None" as a result. > > Any idea what is missing? Am I missing a certain scope or an import statement? > > Thank you very much for any hints what might be wrong here ... > > Andreas > > _______________________________________________ > QGIS-Developer mailing list > QGIS-Developer@lists.osgeo.org > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer -- Alessandro Pasotti QCooperative: www.qcooperative.net ItOpen: www.itopen.it _______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer