Template-based widget rendering

Template widgets in Django are now rendered using HTML templates, instead of pure Python. This allows easier extensibility and lets you also take advantage of the template engine of your choice for rendering widgets.

Take a look at the new form rendering API to learn more about how template-based widgets work.

Subquery expressions

Django now supports what is called Subquery expressions. In brief, subquery expressions allow you to make a database query with multiple SELECT queries one inside another, in pure Python.

This can be extremely useful when you would like to fetch also aggregated data for each queryset's object (e.g. bring all users and the count of blog articles of each user that have more than 1,000 views).

📣 Public Service Announcement: This is the last Django version to support Python 2. Starting with the next Django version (2.0), only Python 3 will be supported.

Want to learn more about Django 1.11 (minor features, deprecations, breaking changes)? Take a look at the complete release notes.

Ready to try out all this new Django goodness? Go to https://www.sourcelair.com, create a new Django project and get straight to work!