The 'Customising generated forms' example contains a few issues that might confuse those who are copy/pasting the code.
1. No reference to the `geocode` library and where it comes from, added imports and revised API usage
2. `location = models.CharField()` requires the `max_length` attribute set
3. `FieldPanel('title')` added to content panels, otherwise testing this out causes error because no title or slug exists
These issues were flagged in #3737
This isn't necessary, since Django form media fills in static paths itself - and doing it at module level will break on startup with certain staticfiles configurations if collectstatic hasn't run yet. Fixes#3829
Concatinating with settings.STATIC_URL is no longer reccomended for creating
URLs to static resources, because it doesn't take the configured storage engine
into account. For example, a site using S3 to store its static files will need
static URLs that link out to S3, rather than relative URLs within the same
domain.
I replaced it with django.contrib.staticfiles.templatetags.staticfiles.static()
in python example code, and the {% static %} tag in template examples.
Most of the samples were already 4-space indented, but a few were using 2-space,
which is both inconsistent and, when it happened with Python code samples,
incompatible with PEP8.
In Django 1.9+ if you do not add: 'builtins': ['overextends.templatetags.overextends_tags'], to your TEMPLATES section you will receive a TemplateSyntaxError when the overextends template files are rendered: "Invalid block tag on line". Including 'builtins': ['overextends.templatetags.overextends_tags'], per the overextends docs (and experience) resolves this error.
https://github.com/stephenmcd/django-overextends