Relaciones¶
Gestiona registros relacionados en la página de edición con RelationBuilder y el widget relation.
Cuándo usar¶
- Un recurso padre tiene hijos (has many, belongs to many).
- Necesitas tabla embebida + formulario de alta en la misma pantalla edit.
Ejemplo¶
.relation(
lambda r: (
r.id("bookings")
.title("Reservas")
.has_many()
.api_path("/api/v1/booking/bookings")
.list_path("/api/v1/booking/bookings?client_ref={id}")
.form_id("booking-create")
.table(
lambda t: t.columns(
lambda c: (
c.text("client_ref", "Cliente")
.badge("status", "Estado")
)
)
)
)
)
Referencia: plugins/booking/cortex_plugin_booking/resources.py.
RelationBuilder¶
| Método | Descripción |
|---|---|
.id(str) | Id de la relación |
.title(str) | Título en UI |
.has_many() | Tipo has_many |
.belongs_to_many() | Tipo belongs_to_many |
.api_path(str) | Base API de la relación |
.list_path(str) | Listado (puede usar {id} del padre) |
.form_id(str) | Formulario para crear hijo |
.table(fn) | Columnas del listado embebido |
Widget emitido¶
{
"type": "relation",
"config": {
"relationId": "bookings",
"title": "Reservas",
"kind": "has_many",
"apiPath": "/api/v1/booking/bookings",
"listPath": "...",
"formId": "booking-create",
"table": { ... }
}
}
El RelationManagerWidget en @cortex/panel-shadcn renderiza tabla + alta inline.
Siguiente paso¶
Widgets — catálogo completo de tipos CUS.