I joined a table to a layer in QGIS using code from this thread: Joining layers with PyQGIS 3. Now I would like to remove the join. How can I do it?
Asked
Active
Viewed 196 times
1 Answers
6
QgsVectorLayer possesses a method for that: removeJoin(joinLayerId: str).
So, if layer2 was initially joined to layer1, the code for removing the join may look like this:
from qgis.core import QgsProject
layer1 = QgsProject.instance().mapLayersByName("LAYER 1")[0]
layer2 = QgsProject.instance().mapLayersByName("LAYER 2")[0]
ids_of_joins_in_layer1 = [join.joinLayerId() for join in layer1.vectorJoins()]
if layer2.id() in ids_of_joins_in_layer1:
layer1.removeJoin(layer2.id())
Taras
- 32,823
- 4
- 66
- 137