Skip to content

pyvelm v0.20.2

Release date: 2026-05-28

Patch release: pin embedded One2many sub-grids per field (list_view, form_view, inline columns) instead of always using the comodel's lowest-id list view.


Highlights

Per-field embedded list / form views

When a comodel has several list views (invoice lines vs journal lines), choose which drives each parent form field:

# On the model (default everywhere)
line_ids = One2many(
    "account.move.line",
    "move_id",
    list_view="account.move.line.invoice",
    form_view="account.move.line.invoice.form",
)

# On one parent form only
field("line_ids", widget="dialog", list_view="account.move.line.entry")

View refs use the same syntax as menus: short name, module/view, or (module, name).

Inline columns (no list view required)

field(
    "comment_ids",
    widget="dialog",
    columns=["body", field("active", widget="toggle")],
    form_view="demo_comment.form",
)

Column precedence: columnslist_view on the form field → list_view on the model field → lowest-id list view → all stored scalars on the comodel.

Documentation

New guide: One2many on parent forms — dialog vs inline, precedence, fallbacks, worked examples.


Upgrade

pip install -U pyvelm==0.20.2

No database migration. After changing VIEWS or field specs, bump the module version and run pyvelm db migrate (or Apps → Sync).


Docs