Skip to main content

SavedView

Saved filter/column preset for a ListView.

Indie mode: created by users via Desk UI, stored in DB.
Enterprise mode: defined in TOML/YAML fixture files under saved_views/
shipped with the app, resolved by VirtualSavedViewResolver.
DB record always wins over a virtual fixture (tenant override pattern).

Source: saved_view.py

Fields

FieldTypeRequiredDescriptionValidators
namestrUnique identifier/slug for the saved view (e.g., 'open_invoices')minLen: 1, maxLen: 255
labelNoneHuman-readable display label (e.g., 'Open Invoices – Asia')maxLen: 255
doctype_targetstrThe DocType this view targets (e.g., 'Invoice')minLen: 1, maxLen: 255
filtersstrJSON-encoded list of FilterRow objects-
columnsNoneJSON-encoded list of visible field names-
order_byNoneOrdering specification (e.g., '-creation')maxLen: 255
is_publicboolIf true, visible to all users with read access to the target DocType. If false, only visible to the owner.-

Permissions

RoleCreateDeleteReadWrite
Admin
Employee
Manager

Configuration

SettingValue
SubmittableFalse
Track ChangesTrue

Controller

Controller hooks are implemented in *_controller.py files. Available lifecycle hooks:

  • validate() - Called before save, raise exceptions for validation errors
  • before_insert() - Called before inserting a new document
  • after_insert() - Called after successfully inserting
  • before_save() - Called before saving (insert or update)
  • after_save() - Called after saving
  • before_delete() - Called before deleting
  • after_delete() - Called after deleting