Field types reference
All field types are defined in backend/src/scaicms/models/content_type.py.
| Slug | Editor | Notes |
|---|---|---|
text |
textarea | Single/multi-line plain text. |
richtext |
RichTextEditor (WYSIWYG) | </> Source toggle for raw HTML. |
markdown |
MarkdownEditor with live preview | Use for technical content. |
number |
<input type="number"> |
Integer/decimal — the value is stored as a number, not a string. |
boolean |
checkbox | Stored as a boolean. |
date |
<input type="date"> |
Date only. |
datetime |
<input type="datetime-local"> |
Date + time, no TZ in editor (UTC over the wire). |
select |
dropdown | options array in field config; multi-select with multiple: true. |
asset |
AssetPicker | Stores a single asset UUID; previews thumbnail. |
blocks |
BlocksEditor | Ordered JSON array; block types declared in the template pack manifest. |
json |
mono textarea | Raw JSON with validation. |
slug |
typed input | URL-safe; auto-generated from title if blank. |
email |
<input type="email"> |
RFC validation. |
url |
<input type="url"> |
http(s) only. |
relation |
(input + picker WIP) | Reference another content item. |
Field definition flags#
Beyond field_type, each field can carry:
| Flag | Meaning |
|---|---|
is_required |
Empty values rejected by validation. |
is_translatable |
The value can be overridden per-locale in content_translations. |
is_searchable |
Indexed into Weaviate so search can hit this field. |
validation |
Per-type config: {"max_length": 200, "regex": "..."}. |
default_value |
Used when creating new content. |
config |
Type-specific: options for select, accept for asset. |