Skip to content

Custom fields

Subclass Field and override render():

from almasix.orbit.forms import Field
class Rating(Field):
def render(self, state=None, **ctx):
name = self.get_state_path() or ""
return self.wrap_field(
name,
f'<input class="or-input" type="range" min="1" max="5" '
f'name="{name}" value="{state or 1}" {self._wire_binding(name)} />',
**ctx,
)

Prefer composing existing fields inside a ViewField or schema layout when you only need custom markup.