Forms
Last updated
Last updated
Purpose of this document is to introduce you to differences and features of forms module available in misago.core.forms
package.
For proper introduction to forms, see .
Because Misago relies on JSON API endpoints to change application state by users, bulk of forms are be written as React.js components making AJAX requests to different /api/
edges, either bypassing the forms altogether, or using them purely for data validation and cleaning.
Misago's admin uses app that allows to easily display forms using Bootstrap 3
markup.
Finally, Misago defines few custom field types:
misago.core.forms.YesNoSwitch
Thin wrapper around Django's TypedChoiceField
. In admin this field renders nice yes/no switch as its input.
YesNoSwitch
coerces its value to int
(eg. 0
or 1
)! Remember about this when writing code dealing with forms containing this field!
Misago defines custom templates extension named misago_forms
. This extension contains two template tags for rendering form fields:
form_row
This tag takes form field as its first argument and renders field complete with label, help and errors. Accepts two extra arguments: label class and field class, allowing you to control size of horizontal forms:
form_input
This tag takes form field as its only argument and renders it's input.