Aller au contenu

Forms

Status: Placeholder — to be developed. Last reviewed:

Scope

Django form / ModelForm conventions: Crispy Forms vs manual rendering (skeleton uses manual — document why), where validation lives (form clean_* vs model clean vs service), SearchSelect widget usage on form fields, file-upload form patterns, multi-step / multi-fieldset forms, how forms wire into views.

This complements guidelines/ui/forms.md (which covers visual layout); this file covers Python-side form construction.

Sources to mine when writing this

  • apps/*/forms.py across the project — survey the patterns in use.
  • templates/skeletons/skeleton_form.html — the rendering convention forms must support.
  • apps/core/widgets.pySearchSelect widget contract.
  • The "more contextual forms" rework (holder forms) — a reference for conditional fieldsets / dynamic field visibility.