This question expands on, and updates for QGIS 3, the answers found here.
I have a layer with attributes called "Name" and "Label". I would like to set to default value of "Label" to be the same as that of "Name" unless and until I enter a value for "Label". I used the Attributes Form settings to enter a default value for "Label" of attribute($currentfeature, "Name"); however, since default values are applied only to new features, and the "Name" field has no value until that feature is created, there is no existing value to apply to "Label".
I believe the AutoFields plugin would have worked, as suggested in the linked topic, but this plugin isn't available in QGIS 3. I also tried to use an if()
statement, but again, it refers to attributes of the new feature, so it doesn't set the default for that feature.
As a workaround for my specific task, I know that I can use conditional statements in my label settings to use "Name" if, and only if, "Label" is NULL. So the question here is, how can I set a default value for an attribute in a new feature that refers to another attribute in the same new feature?