Skip to main content

Django Form Renderers

Sometimes form.as_p doesn’t cut it. This app adds more render methods to all forms.

Travis

Installation

  1. Install or add django-form-renderers to your Python path.

  2. Add form_renderers to your INSTALLED_APPS setting.

What it does

  1. Every form receives a div-based render method called as_div.

  2. If a field is required then an attribute required="required" is rendered for every widget. This is a safe blanket assumption.

  3. Optional - every field and input gets extra BEM CSS classes.

Defining your own renderers

Create either form_renderers.py or form_renderers/__init__.py in your app. Each renderer must be a function:

def as_some_renderer(form):
    return form._html_output(
        ...
    )

def as_another_renderer(form):
    return form._html_output(
        ...
    )

You can override the default as_div by creating a renderer called as_div in your app. The same rules that apply for Django template overriding apply to renderer overriding.

Replace as_p and / or as_table globally

Most third party apps use as_p or as_table for rendering. Replace it globally by setting:

FORM_RENDERERS = {"replace-as-p": True, "replace-as-table": True}

BEM

BEM is a CSS naming convention that advocates explicit naming over inheritance. Django forms, fields and widgets are not BEM aware. To enabled BEM classes from settings do:

FORM_RENDERERS = {"enable-bem-classes": True}

Authors

Praekelt Consulting

  • Hedley Roos

Changelog

0.3.2

  1. Django 1.10 tests pass. Handle Django 1.11 widget refactor gracefully.

0.3.1

  1. Add a setting allowing as_p and as_table to be overridden globally.

0.3

  1. Add a span tag hook for choice inputs. This allows CSS selectors to target the text inside the label tag.

0.2

  1. Optional BEM classes.

  2. Standardize as_div.

0.1.1

  1. Allow apps to specify custom renderers.

0.1

  1. First release.

Metadata

Release files for django-form-renderers 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-form-renderers 0.3.2
File Size Uploaded
django-form-renderers-0.3.2.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-form-renderers 0.3.2
File Interpreter ABI Platform
django_form_renderers-0.3.2-py2.7.egg Legacy Egg format - - Details

Total release size: 24.9 kB

Release files / django-form-renderers-0.3.2.tar.gz

Download URL django-form-renderers-0.3.2.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
69bd378ce5dd58a01b7e6f2473a5a1b2e23fc9bf05117aed3a695a965439ab10
BLAKE2b-256 checksum
How to use checksums
85fd02f09f7ebd7aed6971e82c98afdc69339e9ab7c11e7692f69d9c7d606a6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / django_form_renderers-0.3.2-py2.7.egg

Download URL django_form_renderers-0.3.2-py2.7.egg
Size 15.9 kB
Tags Egg
SHA-256 checksum
How to use checksums
a20f93aa0010d50963b862afb1bde1e4cdc57765104c09867a94d2f06828ef17
BLAKE2b-256 checksum
How to use checksums
c17a723e81e184cf9df19645bce7552322f013c095ad3e72ea2d3f9a03f90e2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3

2 release files

0.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page