def set_metadata_layer(self, request, **kwargs): self.layer = self.get_layer_by_params(kwargs) # set layer_name self.layer_name = self.layer.origname geomodel, self.database_to_use, geometrytype = create_geomodel_from_qdjango_layer( self.layer) if geometrytype is None: geometrytype = QGIS_LAYER_TYPE_NO_GEOM # set bbox_filter_field with geomentry model field if geometrytype != QGIS_LAYER_TYPE_NO_GEOM: serializer = QGISGeoLayerSerializer self.bbox_filter_field = get_geometry_column(geomodel).name else: serializer = QGISLayerSerializer # create model and add to editing_layers self.metadata_layer = MetadataVectorLayer(geomodel, serializer, geometrytype, self.layer.origname, layer_id=self.layer.pk)
def __init__(self, *args, **kwargs): # to avoid model interrelations on parallel api call self.set_meta(kwargs) # set geometry column geometryfield = get_geometry_column(self.Meta.model) self.Meta.geo_field = geometryfield.name super(QGISGeoLayerSerializer, self).__init__(*args, **kwargs)