Fragment

Base class: Part

Fragment is a class used to build small HTML fragments that plug into iommi’s structure.

h1 = Fragment(children__text='Tony', tag='h1')

It’s easiest to use via the html builder:

h1 = html.h1('Tony')

Fragments are useful because attrs, template and tag are evaluated, so if you have a Page with a fragment in it you can configure it later:

class MyPage(Page):
    header = html.h1(
        'Hi!',
        attrs__class__staff=
            lambda request, **_: request.user.is_staff,
    )

Rendering a MyPage will result in a <h1>, but if you do MyPage(parts__header__tag='h2') it will be rendered with a <h2>.

Refinable members

after     (evaluated)

Type: Union[int, str]

See after

assets

Type: Namespace

See assets

attrs     (evaluated)

Type: Attrs

children

Cookbook:

How do I override part of a part/page?

endpoints

Type: Namespace

extra

Type: Dict[str, Any]

See extra

extra_evaluated

Type: Dict[str, Any]

See extra

extra_params

include     (evaluated)

Type: bool

See include

iommi_style

Type: str

tag     (evaluated)

See tag

template     (evaluated)

Type: Union[str, iommi._web_compat.Template]

Cookbook:

How do I override rendering of the input field?

Methods

on_bind

on_refine_done

own_evaluate_parameters

render_text_or_children