This contains the majority of important changes made since Django 1.6. Some, such as GIS or finer details on writing database backends, were not fully represented. Some private APIs have also been left off for deeper internal stuff.
i18n_patterns()
no longer takes prefix=
include()
app_name
argument has been replaced with passing a two-tuple of (urls, app_name)
namespace=
instead of a third tuple argument (if passing a tuple)patterns()
is replaced with a standard list
url()
reverse()
no longer takes a dotted view pathshortcut()
was removedurl()
requires a function instead of a dotted view pathResolverMatch.app_name
now contains the full namespace path if using nested namespaces, and an empty string if there is no namespacehandler404
must now explicitly return a response with a 404 error code.app_name
can be set in a urls.py
file to specify the default app name for all URLs.AdminSite
's URLs, pass admin.site.urls
as the view instead of include(admin.site.urls)
django.contrib.admin.util
was Renamed to django.contrib.admin.utils
django.contrib.admin.validation
module is goneModelAdmin
ModelAdmin.declared_fieldsets
is gone (Internal API). Use ModelAdmin.get_fieldsets()
instead.ModelAdmin.get_formsets()
was replaced with ModelAdmin.get_formsets_with_inlines()
ModelAdmin.validator_class
and ModelAdmin.default_validator_class
has been replaced with the new checks_class
attributeModelAdmin.validate()
was replaced with ModelAdmin.check()
allow_tags=
boolean for functions was removed. Use format_html()
or similar in the function body instead.myfield_id
) to list_display
, the ID will now be shown instead of the string value of the related objectInlineAdminForm.original_content_type_id
was removedvendor/jquery
subdirectory.