DjangoCon US 2016 - Solving Problems With Django Forms by Kirt Gittens

DjangoCon US 2016 - Solving Problems With Django Forms by Kirt Gittens

We'll look at a few core problems that we were able to solve with Django forms.

Dynamic Field Creation: What if you don't know what fields should be present on a Django form until runtime?. Solutions:

Viewing a form's fields as a data structure (convert a field definition to a dictionary) Manipulate self.fields on a form to dynamically add / remove forms from a field.

Pitfalls:

A fields validated attributes can't be manipulated dynamically because of Validators within the forms API. Dynamic form layouts become difficult to manage, crispyforms does not scale as a solution!

Validate a form via an API: How can external validations behave the same as internal errors? Solutions:

form.clean() can be used for form wide errors, and form.add_error can be used to integrate those external validation errors into your existing form so that calls like is_valid() still work as expected with your external validations.

Adding fields at runtime: How can the user add fields to a form after it has been rendered?

Solutions:

Javascript can be used for the UI, and if the fields are properly named, the same validations will work as long as the fields are part of the form.

Pitfalls: Creating a solution that creates a dynamic field that is validated, but doesn't render can cause issues with your layout solution (crispyforms fails again here)

This talk was presented at: https://2016.djangocon.us/schedule/presentation/27/

LINKS: Follow DjangCon US 👇 https://twitter.com/djangocon

Follow DEFNA 👇 https://twitter.com/defnado https://www.defna.org/

Date Added: September 19, 2024

Watch Video