Action#
Base class: Fragment
The Action
class describes buttons and links.
Examples:
# Link
Action(attrs__href='http://example.com'),
# Link with icon
Action.icon('edit', attrs__href="edit/"),
# Button
Action.button(display_name='Button title!'),
# A submit button
Action.submit(display_name='Do this'),
# The primary submit button on a form.
Action.primary(),
Notice that because forms with a single primary submit button are so common, iommi assumes that if you have an action called submit and do NOT explicitly specify the action that it is a primary action. This is only done for the action called submit, inside the Forms actions Namespace.
For that reason this works:
class MyForm(Form):
class Meta:
@staticmethod
def actions__submit__post_handler(form, **_):
if not form.is_valid():
return
...
and is roughly equivalent to
def on_submit(form, **_):
if not form.is_valid():
return
class MyOtherForm(Form):
class Meta:
actions__submit = Action.primary(post_handler=on_submit)
Refinable members#
after
(evaluated)Type:
Union[int, str]
assets
Type:
Namespace
children
display_name
(evaluated)Type:
str
Default:
lambda action, **_: capitalize(action._name).replace('_', ' ')
endpoints
Type:
Namespace
extra
Type:
Dict[str, Any]
extra_evaluated
Type:
Dict[str, Any]
extra_params
group
(evaluated)Type:
str
include
(evaluated)Type:
bool
iommi_style
Type:
str
post_handler
Type:
Callable
tag
(evaluated)Default:
a
template
(evaluated)Type:
Union[str, iommi._web_compat.Template]
Shortcuts#
delete
#
icon
#
primary
#
submit
#
Defaults#
attrs__accesskey
s
attrs__name
lambda action, **_: action.own_target_marker()
display_name
Submit