I have a layer with a customized form. Dropdowns, checkboxes, etc. in a QGIS project which is kind of a template. This QGIS project will be copied and pasted every time a new study has to be done (usually twice a week).

The problem is that I want the layer to be empty for each project at the beginning, so that users can insert the data for the new study. The data once saved, should be visible only in that specific project. So all the projects will use the same layer, but each QGIS project will only see in that layer the data introduced in that specific project.

I thought of making a new field in the layer named "project name" and in layer's filter option add the following filter:

"project name"= @project_filename 

@project_filename is a project variable which stores the name of the project but in layer's filter I can't use project variables...

Is there any way to achieve what I have explained?


You should save it as a template, so that each time you need it you can click project -> new from template.

Just save your .qgs template file and copy it in the template directory (which can be found or specified in the General tab) enter image description here

  • That's a great feature I didn't know but it doesn't solve my problem. When I open the project, my layer data is displayed in all the "child" projects. I need the data in that layer to be separate in each project, without having to create a new layer (SHP or whatever) and configuring the layer each time... – Egidi May 3 '16 at 10:15
  • You'd either set the layer data as "read only" or create a copy layer as soon as you load your project, thus leaving the layer data unmodified. – Allison R May 3 '16 at 20:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.