Django 2.1 has been released with changes to Model view permissions, Database backend API, and additional new features. Django 2.1 supports Python 3.5, 3.6, and 3.7. Django 2.1 is a time-based release. The schedule followed was:
May 14, 2018 | Django 2.1 alpha; feature freeze. |
June 18 | Django 2.1 beta; non-release blocking bug fix freeze. |
July 16 | Django 2.1 RC 1; translation string freeze. |
~August 1 | Django 2.1 final |
Here is the list of all new features:
Django 2.1 adds a view permission to the model Meta.default_permissions. This new permission will allow users read-only access to models in the admin. The permission will be created automatically when running migrate.
With the new “view” permission, existing custom admin forms may raise errors when a user doesn’t have the change permission because the form might access nonexistent fields.
If users have a custom permission with a codename of the form can_view_<modelname>, the new view permission handling in the admin will allow view access to the changelist and detail pages for those models.
Django 2.1 marks the end of upstream support for MySQL 5.5. It now supports MySQL 5.6 and higher. Similarly, it ends the support for PostgreSQL 9.3. Django 2.1 supports PostgreSQL 9.4 and higher.
The cookies used for django.contrib.sessions, django.contrib.messages, and Django’s CSRF protection now set the SameSite flag to Lax by default. Browsers that respect this flag won’t send these cookies on cross-origin requests.
These are just a select few updates in available in Django 2.1. The release notes cover all the new features in detail.
Getting started with Django RESTful Web Services
Getting started with Django and Django REST frameworks to build a RESTful app
Python web development: Django vs Flask in 2018