Scope and context
This is the official documentation of the forestadmin-agent-django
and forestadmin-agent-flask
Python agents.
Actions can have 3 different scopes: Single
, Bulk
, and Global
.
The scope of an action defines how it can be triggered and which records it will target.
The context
object
context
objectThe context
object is central to writing Actions controllers in Forest Admin.
It is the bridge between all the data that your agent has access to and the action's execution. It is passed to the execute
function as the first argument and provides access to the following properties:
get_record
(orget_records
forBulk
andGlobal
Actions)get_record_id
(orget_record_ids
forBulk
andGlobal
Actions)collection
the collection on which the action is declared.filter
a filter that can be used to query the collection, and which is based on action scope and the list of selected records.caller
an object containing information about the user who is performing the action (including email, username, timezone, team, role …)has_field_changed(field_name)
the name of the field who has changed in the UI. See an example of usage
changed_field
was deprecated in favor of has_field_changed(field_name)
starting from forestadmin-datasource-toolkit==1.0.0-beta14
.
Example 1: Getting data from the selected records
We can simply use the getRecord()
method to get any column from the selected record or a relation.
Example 2: Updating a field of the selected record
For simple queries, use context.collection
and context.filter
to query the collection.
Example 3: Coding any business logic
Forest Admin does not impose any restriction on the handler: you are free to write the execute
handler to fit your use case.
You are free to call external APIs, query your database, or perform any work in action handlers.
Last updated