Add computed fields#
Computed fields derive their value from other fields using Jinja2 expressions. They are never shown to the user as prompts; Cookieplone calculates their values automatically.
Reference other computed fields#
Computed fields can reference previously computed fields as long as they appear later in the properties object:
{
"properties": {
"project_slug": {
"type": "string",
"default": "my-project"
},
"package_name": {
"type": "string",
"format": "computed",
"default": "{{ cookiecutter.project_slug | replace('-', '_') }}"
},
"module_path": {
"type": "string",
"format": "computed",
"default": "src/{{ cookiecutter.package_name }}"
}
}
}
Use built-in filters in computed fields#
Cookieplone's built-in filters are available in Jinja2 expressions:
{
"class_name": {
"type": "string",
"format": "computed",
"default": "{{ cookiecutter.package_name | pascal_case }}"
}
}
See Filters reference for the full list of available filters.
Constant fields#
Fields with "format": "constant" are similar to computed fields but are also hidden from prompts.
Use them for values that are fixed regardless of user input:
{
"schema_version": {
"type": "string",
"format": "constant",
"default": "2.0"
}
}