# Forms have never been this crispy

django-crispy-forms provides you with a `|crispy` filter and `{% crispy %}` tag that will let you control the rendering behavior of your Django forms in a very elegant and DRY way. Have full control without writing custom form templates. All this without breaking the standard way of doing things in Django, so it plays nice with any other form application.

## User Guide

Get the most out of django-crispy-forms

- Installation
  - Installing django-crispy-forms
  - Template packs
  - Setting media files
  - Moving from django-uni-form to django-crispy-forms
  - Uni-form static files
  - Activate uni-form.jquery
- crispy filter
  - Using {% crispy %} tag because it rocks
- {% crispy %} tag with forms
  - Fundamentals
  - Manipulating a helper in a view
  - Rendering several forms with helpers
  - Change ‘*’ required fields
  - Make crispy-forms fail loud
  - Change crispy-forms <input> default classes
  - Render a form within Python code
  - AJAX validation recipe
  - Bootstrap3 horizontal forms
  - Bootstrap3 inline forms
- FormHelper
  - FormHelper with a form attached (Default layout)
  - Helper attributes you can set
  - Bootstrap Helper attributes
  - Bootstrap 3 Helper attributes
  - Custom Helper attributes
- Layouts
  - Fundamentals
  - Layout objects attributes
  - Universal layout objects
  - Uni-form layout objects
  - Bootstrap Layout objects
  - Overriding layout objects templates
  - Overriding project templates
  - Creating your own layout objects
  - Composing layouts
- How to create your own template packs
  - Fundamentals
  - Starting
- {% crispy %} tag with formsets
  - Formsets
  - Extra context
  - Custom templates and table inline formsets
  - Formset forms with different layouts
- Updating layouts on the go
  - Selecting layout objects with slices
  - wrap
  - wrap_together
  - update_attributes
  - all
  - Selecting a field name
  - filter
  - filter_by_widget
  - exclude_by_widget
  - Manipulating a layout

- Frequently Asked Questions

- See who’s contributed to the project at crispy-forms contributors
- You can find a detailed history of the project in Github’s CHANGELOG

## API documentation

If you are looking for information on a specific function, class or method, this part of the documentation is for you.

- API helpers
- API Layout
- API templatetags

## Developer Guide

Think this is awesome and want to make it better? Read our contribution page, make it better, and you will be added to the contributors list!

- Contributing
  - Setup
  - Setting up topic branches and generating pull requests
  - Pull upstream changes into your fork regularly
  - How to get your Pull Request accepted