Class: QgsRelation

class qgis.core.QgsRelation

Bases: sip.wrapper

Default constructor. Creates an invalid relation.

QgsRelation(context: QgsRelationContext) Constructor with context. Creates an invalid relation.

QgsRelation(other: QgsRelation) Copies a relation. This makes a shallow copy, relations are implicitly shared and only duplicated when the copy is changed.

Methods

addFieldPair

Add a field pairs which is part of this relation The first element of each pair are the field names of the foreign key.

createFromXml

Creates a relation from an XML structure.

fieldPairs

Returns the field pairs which form this relation The first element of each pair are the field names of the foreign key.

generateId

Generate a (project-wide) unique id for this relation

getReferencedFeature

Creates a request to return the feature on the referenced (parent) layer which is referenced by the provided feature.

getReferencedFeatureRequest

Creates a request to return the feature on the referenced (parent) layer which is referenced by the provided feature.

getRelatedFeatures

Creates an iterator which returns all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

getRelatedFeaturesFilter

Returns a filter expression which returns all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

getRelatedFeaturesRequest

Creates a request to return all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

hasEqualDefinition

Compares the two QgsRelation, ignoring the name and the ID.

id

A (project-wide) unique id for this relation

isValid

Returns the validity of this relation.

name

Returns a human readable name for this relation.

referencedFields

Returns a list of attributes used to form the referenced fields (most likely primary key) on the referenced (parent) layer.

referencedLayer

Access the referenced (parent) layer

referencedLayerId

Access the referenced (parent) layer's id

referencingFields

Returns a list of attributes used to form the referencing fields (foreign key) on the referencing (child) layer.

referencingLayer

Access the referencing (child) layer This is the layer which has the field(s) which point to another layer

referencingLayerId

Access the referencing (child) layer's id This is the layer which has the field(s) which point to another layer

resolveReferencedField

Gets the referenced field counterpart given a referencing field.

resolveReferencingField

Gets the referencing field counterpart given a referenced field.

setId

Set an id for this relation

setName

Set a name for this relation

setReferencedLayer

Set the referenced (parent) layer id.

setReferencingLayer

Set the referencing (child) layer id.

setStrength

Set a strength for this relation

strength

Returns the relation strength as a string

updateRelationStatus

Updates the validity status of this relation.

writeXml

Writes a relation to an XML structure.

Attributes

Association

Composition

staticMetaObject

Association = 0
Composition = 1
class RelationStrength

Bases: int

baseClass

alias of qgis._core.QgsRelation

addFieldPair(self, referencingField: str, referencedField: str)

Add a field pairs which is part of this relation The first element of each pair are the field names of the foreign key. The second element of each pair are the field names of the matching primary key.

Parameters
  • referencingField (str) – The field name on the referencing (child) layer (FK)

  • referencedField (str) – The field name on the referenced (parent) layer (PK)

createFromXml(node: QDomNode, context: QgsReadWriteContext, relationContext: QgsRelationContext = QgsRelationContext()) QgsRelation

Creates a relation from an XML structure. Used for reading .qgs projects.

Parameters
  • node (QDomNode) – The dom node containing the relation information

  • context (QgsReadWriteContext) – to pass project translator

  • relationContext (QgsRelationContext = QgsRelationContext()) – a relation context

Return type

QgsRelation

Returns

A relation

fieldPairs(self) Dict[str, str]

Returns the field pairs which form this relation The first element of each pair are the field names of the foreign key. The second element of each pair are the field names of the matching primary key.

Return type

Dict[str, str]

Returns

The fields forming the relation

generateId(self)

Generate a (project-wide) unique id for this relation

New in version 3.0.

getReferencedFeature(self, feature: QgsFeature) QgsFeature

Creates a request to return the feature on the referenced (parent) layer which is referenced by the provided feature.

Parameters

feature (QgsFeature) – A feature from the referencing (child) layer

Return type

QgsFeature

Returns

A request the referenced feature

getReferencedFeatureRequest(self, attributes: object) QgsFeatureRequest

Creates a request to return the feature on the referenced (parent) layer which is referenced by the provided feature.

Parameters

attributes (object) – An attribute vector containing the foreign key

Returns

A request the referenced feature

getReferencedFeatureRequest(self, feature: QgsFeature) -> QgsFeatureRequest Creates a request to return the feature on the referenced (parent) layer which is referenced by the provided feature.

Parameters

feature – A feature from the referencing (child) layer

Return type

QgsFeatureRequest

Returns

A request the referenced feature

getRelatedFeatures(self, feature: QgsFeature) QgsFeatureIterator

Creates an iterator which returns all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

Parameters

feature (QgsFeature) – A feature from the referenced (parent) layer

Return type

QgsFeatureIterator

Returns

An iterator with all the referenced features

getRelatedFeaturesFilter(self, feature: QgsFeature) str

Returns a filter expression which returns all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

Parameters

feature (QgsFeature) – A feature from the referenced (parent) layer

Return type

str

Returns

expression filter string for all the referencing features

New in version 2.16.

getRelatedFeaturesRequest(self, feature: QgsFeature) QgsFeatureRequest

Creates a request to return all the features on the referencing (child) layer which have a foreign key pointing to the provided feature.

Parameters

feature (QgsFeature) – A feature from the referenced (parent) layer

Return type

QgsFeatureRequest

Returns

A request for all the referencing features

hasEqualDefinition(self, other: QgsRelation) bool

Compares the two QgsRelation, ignoring the name and the ID.

Parameters

other (QgsRelation) – The other relation

Return type

bool

Returns

True if they are similar

New in version 3.0.

id(self) str

A (project-wide) unique id for this relation

Return type

str

Returns

The id

isValid(self) bool

Returns the validity of this relation. Don’t use the information if it’s not valid. A relation is considered valid if both referenced and referencig layers are valid.

Return type

bool

Returns

True if the relation is valid

name(self) str

Returns a human readable name for this relation. Mostly used as title for the children.

See also

id()

Return type

str

Returns

A name

referencedFields(self) List[int]

Returns a list of attributes used to form the referenced fields (most likely primary key) on the referenced (parent) layer.

Return type

List[int]

Returns

A list of attributes

referencedLayer(self) QgsVectorLayer

Access the referenced (parent) layer

Return type

QgsVectorLayer

Returns

referenced layer

referencedLayerId(self) str

Access the referenced (parent) layer’s id

Return type

str

Returns

The id of the referenced layer

referencingFields(self) List[int]

Returns a list of attributes used to form the referencing fields (foreign key) on the referencing (child) layer.

Return type

List[int]

Returns

A list of attributes

referencingLayer(self) QgsVectorLayer

Access the referencing (child) layer This is the layer which has the field(s) which point to another layer

Return type

QgsVectorLayer

Returns

The referencing layer

referencingLayerId(self) str

Access the referencing (child) layer’s id This is the layer which has the field(s) which point to another layer

Return type

str

Returns

The id of the referencing layer

resolveReferencedField(self, referencingField: str) str

Gets the referenced field counterpart given a referencing field.

New in version 3.0.

Parameters

referencingField (str) –

Return type

str

resolveReferencingField(self, referencedField: str) str

Gets the referencing field counterpart given a referenced field.

New in version 3.0.

Parameters

referencedField (str) –

Return type

str

setId(self, id: str)

Set an id for this relation

Parameters

id (str) –

setName(self, name: str)

Set a name for this relation

Parameters

name (str) –

setReferencedLayer(self, id: str)

Set the referenced (parent) layer id. This layer will be searched in the registry.

Parameters

id (str) –

setReferencingLayer(self, id: str)

Set the referencing (child) layer id. This layer will be searched in the registry.

Parameters

id (str) –

setStrength(self, strength: QgsRelation.RelationStrength)

Set a strength for this relation

New in version 3.0.

Parameters

strength (QgsRelation.RelationStrength) –

staticMetaObject = <PyQt5.QtCore.QMetaObject object>
strength(self) QgsRelation.RelationStrength

Returns the relation strength as a string

Return type

QgsRelation.RelationStrength

Returns

strength

New in version 3.0.

updateRelationStatus(self)

Updates the validity status of this relation. Will be called internally whenever a member is changed.

New in version 3.6.

writeXml(self, node: QDomNode, doc: QDomDocument)

Writes a relation to an XML structure. Used for saving .qgs projects

Parameters
  • node (QDomNode) – The parent node in which the relation will be created

  • doc (QDomDocument) – The document in which the relation will be saved