flask_admin.form.rules

class BaseRule[source]

Base form rule. All form formatting rules should derive from BaseRule.

class NestedRule(rules: Sequence[str | flask_admin.form.rules.FieldSet | flask_admin.form.rules.BaseRule | flask_admin.form.rules.Header | flask_admin.form.rules.Field | flask_admin.form.rules.Macro] | None = None, separator: str = '')[source]

Nested rule. Can contain child rules and render them.

Constructor.

Parameters:
  • rules – Child rule list

  • separator – Default separator between rules when rendering them.

class Text(text: str, escape: bool = True)[source]

Render text (or HTML snippet) from string.

Constructor.

Parameters:
  • text – Text to render

  • escape – Should text be escaped or not. Default is True.

class HTML(html: str)[source]

Shortcut for Text rule with escape set to False.

Constructor.

Parameters:
  • text – Text to render

  • escape – Should text be escaped or not. Default is True.

class Macro(macro_name: str, **kwargs: Any)[source]

Render macro by its name from current Jinja2 context.

Constructor.

Parameters:
  • macro_name – Macro name

  • kwargs – Default macro parameters

class Container(macro_name: str, child_rule: BaseRule, **kwargs: Any)[source]

Render container around child rule.

Constructor.

Parameters:
  • macro_name – Macro name that will be used as a container

  • child_rule – Child rule to be rendered inside of container

  • kwargs – Container macro arguments

The container is nothing but a Jinja Macro that is placed within the current jinja context. The rule inside the container is represented by {{ caller() }} as it is shown in the follwoing Jinja [snippet](/advanced/index.html#built-in-rules):

class Field(field_name: str, render_field: str = 'lib.render_field')[source]

Form field rule.

Constructor.

Parameters:
  • field_name – Field name to render

  • render_field – Macro that will be used to render the field.

class Header(text: str, header_macro: str = 'lib.render_header')[source]

Render header text.

Constructor.

Parameters:
  • text – Text to render

  • header_macro – Header rendering macro

class FieldSet(rules: Sequence[str | flask_admin.form.rules.FieldSet | flask_admin.form.rules.BaseRule | flask_admin.form.rules.Header | flask_admin.form.rules.Field | flask_admin.form.rules.Macro], header: str | flask_babel.LazyString | None = None, separator: str = '')[source]

Field set with header.

Constructor.

Parameters:
  • rules – Child rules

  • header – Header text

  • separator – Child rule separator