6 votos

¿Está activo el nombre de usuario de la conexión PostgreSQL como variable en QGIS?

¿Es posible obtener el nombre de usuario de inicio de sesión de una conexión de capa PostgreSQL actual en QGIS?

Mi objetivo es rellenar automáticamente nuevos objetos en una capa con un nombre de usuario de inicio de sesión del editor (no @user_account_name o @user_full_name, porque no están relacionados con una conexión postgres).

11voto

Dom Puntos 162

Resolví el problema escribiendo una función de expresión personalizada:

 from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def get_username(feature, parent, context):
    layer_name = context.variable('layer_name')
    layer = QgsProject.instance().mapLayersByName(layer_name)[0]
    username = QgsDataSourceUri(layer.dataProvider().dataSourceUri()).username()
    return username
 

ahora puedo usar una función personalizada get_username() en la expresión de

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X