summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-05-20 10:50:51 -0400
committerTim Graham <timograham@gmail.com>2016-05-20 11:44:29 -0400
commit46a38307c245ab7ed0b4d5d5ebbaf523a81e3b75 (patch)
tree214e952529a3d125d0efb097af9c4caa7e12635f /docs
parent1915a7e5c56d996b0e98decf8798c7f47ff04e76 (diff)
Removed versionadded/changed annotations for 1.9.
Diffstat (limited to 'docs')
-rw-r--r--docs/howto/auth-remote-user.txt2
-rw-r--r--docs/howto/custom-file-storage.txt5
-rw-r--r--docs/howto/custom-template-tags.txt9
-rw-r--r--docs/howto/error-reporting.txt5
-rw-r--r--docs/internals/contributing/writing-code/unit-tests.txt5
-rw-r--r--docs/ref/class-based-views/base.txt7
-rw-r--r--docs/ref/class-based-views/mixins-editing.txt7
-rw-r--r--docs/ref/contrib/admin/admindocs.txt6
-rw-r--r--docs/ref/contrib/admin/index.txt27
-rw-r--r--docs/ref/contrib/admin/javascript.txt2
-rw-r--r--docs/ref/contrib/flatpages.txt4
-rw-r--r--docs/ref/contrib/gis/db-api.txt2
-rw-r--r--docs/ref/contrib/gis/functions.txt2
-rw-r--r--docs/ref/contrib/gis/gdal.txt18
-rw-r--r--docs/ref/contrib/gis/geoip2.txt2
-rw-r--r--docs/ref/contrib/gis/model-api.txt32
-rw-r--r--docs/ref/contrib/gis/serializers.txt5
-rw-r--r--docs/ref/contrib/postgres/aggregates.txt2
-rw-r--r--docs/ref/contrib/postgres/fields.txt4
-rw-r--r--docs/ref/contrib/postgres/functions.txt2
-rw-r--r--docs/ref/contrib/sites.txt9
-rw-r--r--docs/ref/contrib/staticfiles.txt4
-rw-r--r--docs/ref/contrib/syndication.txt5
-rw-r--r--docs/ref/csrf.txt4
-rw-r--r--docs/ref/django-admin.txt71
-rw-r--r--docs/ref/files/file.txt4
-rw-r--r--docs/ref/forms/api.txt10
-rw-r--r--docs/ref/forms/fields.txt8
-rw-r--r--docs/ref/forms/models.txt12
-rw-r--r--docs/ref/forms/widgets.txt11
-rw-r--r--docs/ref/middleware.txt2
-rw-r--r--docs/ref/models/database-functions.txt18
-rw-r--r--docs/ref/models/expressions.txt4
-rw-r--r--docs/ref/models/fields.txt14
-rw-r--r--docs/ref/models/instances.txt8
-rw-r--r--docs/ref/models/lookups.txt8
-rw-r--r--docs/ref/models/options.txt10
-rw-r--r--docs/ref/models/querysets.txt58
-rw-r--r--docs/ref/models/relations.txt14
-rw-r--r--docs/ref/request-response.txt54
-rw-r--r--docs/ref/settings.txt28
-rw-r--r--docs/ref/templates/api.txt22
-rw-r--r--docs/ref/templates/builtins.txt8
-rw-r--r--docs/ref/urlresolvers.txt2
-rw-r--r--docs/ref/utils.txt14
-rw-r--r--docs/ref/validators.txt6
-rw-r--r--docs/ref/views.txt18
-rw-r--r--docs/topics/auth/customizing.txt6
-rw-r--r--docs/topics/auth/default.txt17
-rw-r--r--docs/topics/auth/passwords.txt8
-rw-r--r--docs/topics/cache.txt4
-rw-r--r--docs/topics/class-based-views/intro.txt5
-rw-r--r--docs/topics/db/queries.txt8
-rw-r--r--docs/topics/db/transactions.txt2
-rw-r--r--docs/topics/forms/formsets.txt5
-rw-r--r--docs/topics/forms/modelforms.txt4
-rw-r--r--docs/topics/http/decorators.txt5
-rw-r--r--docs/topics/http/sessions.txt11
-rw-r--r--docs/topics/http/urls.txt14
-rw-r--r--docs/topics/i18n/translation.txt26
-rw-r--r--docs/topics/logging.txt12
-rw-r--r--docs/topics/migrations.txt7
-rw-r--r--docs/topics/pagination.txt5
-rw-r--r--docs/topics/serialization.txt2
-rw-r--r--docs/topics/templates.txt12
-rw-r--r--docs/topics/testing/overview.txt2
-rw-r--r--docs/topics/testing/tools.txt17
67 files changed, 15 insertions, 731 deletions
diff --git a/docs/howto/auth-remote-user.txt b/docs/howto/auth-remote-user.txt
index 5bfe210458..b695fbd647 100644
--- a/docs/howto/auth-remote-user.txt
+++ b/docs/howto/auth-remote-user.txt
@@ -113,8 +113,6 @@ override one or more of its attributes and methods.
Using ``REMOTE_USER`` on login pages only
=========================================
-.. versionadded:: 1.9
-
The ``RemoteUserMiddleware`` authentication middleware assumes that the HTTP
request header ``REMOTE_USER`` is present with all authenticated requests. That
might be expected and practical when Basic HTTP Auth with ``htpasswd`` or other
diff --git a/docs/howto/custom-file-storage.txt b/docs/howto/custom-file-storage.txt
index 131f559670..0ad094da79 100644
--- a/docs/howto/custom-file-storage.txt
+++ b/docs/howto/custom-file-storage.txt
@@ -94,11 +94,6 @@ the server or, if ``upload_to`` is a callable, the filename returned by that
method after any path information is removed. Override this to customize how
non-standard characters are converted to safe filenames.
-.. versionchanged:: 1.9
-
- In older versions, this method was not called when ``upload_to`` was a
- callable.
-
The code provided on ``Storage`` retains only alpha-numeric characters, periods
and underscores from the original filename, removing everything else.
diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt
index 69e223c01c..53ea433137 100644
--- a/docs/howto/custom-template-tags.txt
+++ b/docs/howto/custom-template-tags.txt
@@ -69,8 +69,6 @@ following::
register = template.Library()
-.. versionadded:: 1.9
-
Alternatively, template tag modules can be registered through the
``'libraries'`` argument to
:class:`~django.template.backends.django.DjangoTemplates`. This is useful if
@@ -445,11 +443,6 @@ code does not contain XSS vulnerabilities. For building small HTML snippets,
use of :func:`~django.utils.html.format_html` instead of ``mark_safe()`` is
strongly recommended.
-.. versionchanged:: 1.9
-
- Auto-escaping for ``simple_tag`` as described in the previous two paragraphs
- was added.
-
If your template tag needs to access the current context, you can use the
``takes_context`` argument when registering your tag::
@@ -490,8 +483,6 @@ positional arguments. For example:
{% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %}
-.. versionadded:: 1.9
-
It's possible to store the tag results in a template variable rather than
directly outputting it. This is done by using the ``as`` argument followed by
the variable name. Doing so enables you to output the content yourself where
diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt
index 7a51338539..d4de4cc708 100644
--- a/docs/howto/error-reporting.txt
+++ b/docs/howto/error-reporting.txt
@@ -67,11 +67,6 @@ those are usually just people typing in broken URLs or broken Web bots. It also
ignores 404s when the referer is equal to the requested URL, since this
behavior is from broken Web bots too.
-.. versionchanged:: 1.9
-
- In older versions, 404s were not ignored when the referer was equal to the
- requested URL.
-
.. note::
:class:`~django.middleware.common.BrokenLinkEmailsMiddleware` must appear
diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt
index 1eea23500d..f92174a9a9 100644
--- a/docs/internals/contributing/writing-code/unit-tests.txt
+++ b/docs/internals/contributing/writing-code/unit-tests.txt
@@ -307,11 +307,6 @@ test failures. You can adjust this behavior with the ``--parallel`` option::
You can also use the ``DJANGO_TEST_PROCESSES`` environment variable for this
purpose.
-.. versionadded:: 1.9
-
- Support for running tests in parallel and the ``--parallel`` option were
- added.
-
Tips for writing tests
----------------------
diff --git a/docs/ref/class-based-views/base.txt b/docs/ref/class-based-views/base.txt
index d22d63cd6f..1b46e10910 100644
--- a/docs/ref/class-based-views/base.txt
+++ b/docs/ref/class-based-views/base.txt
@@ -70,8 +70,6 @@ MRO is an acronym for Method Resolution Order.
response = MyView.as_view()(request)
- .. versionadded:: 1.9
-
The returned view has ``view_class`` and ``view_initkwargs``
attributes.
@@ -232,11 +230,6 @@ MRO is an acronym for Method Resolution Order.
status code 301. If ``False``, then the redirect will use status code
302. By default, ``permanent`` is ``False``.
- .. versionchanged:: 1.9
-
- The default value of the ``permanent`` attribute changed from
- ``True`` to ``False``.
-
.. attribute:: query_string
Whether to pass along the GET query string to the new location. If
diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt
index a070330b8b..80757ab5bf 100644
--- a/docs/ref/class-based-views/mixins-editing.txt
+++ b/docs/ref/class-based-views/mixins-editing.txt
@@ -89,8 +89,6 @@ The following mixins are used to construct Django's editing views:
.. method:: get_context_data(**kwargs)
- .. versionadded:: 1.9
-
Calls :meth:`get_form` and adds the result to the context data with the
name 'form'.
@@ -204,11 +202,6 @@ The following mixins are used to construct Django's editing views:
Renders a response using a context created with
:meth:`~django.views.generic.edit.FormMixin.get_context_data`.
- .. versionchanged:: 1.9
-
- Construction of the form was moved from this method to
- :meth:`~django.views.generic.edit.FormMixin.get_context_data`.
-
.. method:: post(request, *args, **kwargs)
Constructs a form, checks the form for validity, and handles it
diff --git a/docs/ref/contrib/admin/admindocs.txt b/docs/ref/contrib/admin/admindocs.txt
index 5ed80fa81d..461813f985 100644
--- a/docs/ref/contrib/admin/admindocs.txt
+++ b/docs/ref/contrib/admin/admindocs.txt
@@ -55,12 +55,6 @@ system along with all the fields and methods available on it. Relationships
to other models appear as hyperlinks. Descriptions are pulled from ``help_text``
attributes on fields or from docstrings on model methods.
-.. versionchanged:: 1.9
-
- The **models** section of the ``admindocs`` now describes methods that take
- arguments as well. In previous versions it was restricted to methods
- without arguments.
-
A model with useful documentation might look like this::
class BlogEntry(models.Model):
diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt
index 66b116ad35..bf2725f3ff 100644
--- a/docs/ref/contrib/admin/index.txt
+++ b/docs/ref/contrib/admin/index.txt
@@ -226,8 +226,6 @@ subclass::
.. attribute:: ModelAdmin.empty_value_display
- .. versionadded:: 1.9
-
This attribute overrides the default display value for record's fields that
are empty (``None``, empty string, etc.). The default value is ``-`` (a
dash). For example::
@@ -656,10 +654,6 @@ subclass::
birth_date_view.empty_value_display = 'unknown'
- .. versionadded:: 1.9
-
- The ability to customize ``empty_value_display`` was added.
-
* If the string given is a method of the model, ``ModelAdmin`` or a
callable that returns True or False Django will display a pretty
"on" or "off" icon if you give the method a ``boolean`` attribute
@@ -1468,8 +1462,6 @@ templates used by the :class:`ModelAdmin` views:
.. method:: ModelAdmin.get_list_select_related(request)
- .. versionadded:: 1.9
-
The ``get_list_select_related`` method is given the ``HttpRequest`` and
should return a boolean or list as :attr:`ModelAdmin.list_select_related`
does.
@@ -1579,8 +1571,6 @@ templates used by the :class:`ModelAdmin` views:
url(r'^my_view/$', self.admin_site.admin_view(self.my_view, cacheable=True))
- .. versionadded:: 1.9
-
``ModelAdmin`` views have ``model_admin`` attributes. Other
``AdminSite`` views have ``admin_site`` attributes.
@@ -1926,12 +1916,6 @@ To avoid conflicts with user-supplied scripts or libraries, Django's jQuery
in your own admin JavaScript without including a second copy, you can use the
``django.jQuery`` object on changelist and add/edit views.
-.. versionchanged:: 1.9
-
- The embedded jQuery was upgraded from 1.11.2 to 2.1.4. This drops
- support for Internet Explorer 8 and below. You can restore support by
- :ref:`including your own version of jQuery 1.X <admin-browser-support-19>`.
-
.. versionchanged:: 1.10
The embedded jQuery was upgraded from 2.1.4 to 2.2.3.
@@ -2586,8 +2570,6 @@ Templates can override or extend base admin templates as described in
.. attribute:: AdminSite.empty_value_display
- .. versionadded:: 1.9
-
The string to use for displaying empty values in the admin site's change
list. Defaults to a dash. The value can also be overridden on a per
``ModelAdmin`` basis and on a custom field within a ``ModelAdmin`` by
@@ -2649,10 +2631,6 @@ Templates can override or extend base admin templates as described in
* ``admin_url``: admin changelist URL for the model
* ``add_url``: admin URL to add a new model instance
- .. versionchanged:: 1.9
-
- The ``available_apps`` variable was added.
-
.. method:: AdminSite.has_permission(request)
Returns ``True`` if the user for the given ``HttpRequest`` has permission
@@ -2680,11 +2658,6 @@ In this example, we register the default ``AdminSite`` instance
url(r'^admin/', admin.site.urls),
]
-.. versionchanged:: 1.9
-
- In previous versions, you would pass ``admin.site.urls`` to
- :func:`~django.conf.urls.include()`.
-
.. _customizing-adminsite:
Customizing the :class:`AdminSite` class
diff --git a/docs/ref/contrib/admin/javascript.txt b/docs/ref/contrib/admin/javascript.txt
index 8b14b781c9..8dad0d4fe1 100644
--- a/docs/ref/contrib/admin/javascript.txt
+++ b/docs/ref/contrib/admin/javascript.txt
@@ -7,8 +7,6 @@ JavaScript customizations in the admin
Inline form events
==================
-.. versionadded:: 1.9
-
You may want to execute some JavaScript when an inline form is added or removed
in the admin change form. The ``formset:added`` and ``formset:removed`` jQuery
events allow this. The event handler is passed three arguments:
diff --git a/docs/ref/contrib/flatpages.txt b/docs/ref/contrib/flatpages.txt
index 580f864c34..33d408a2b8 100644
--- a/docs/ref/contrib/flatpages.txt
+++ b/docs/ref/contrib/flatpages.txt
@@ -206,10 +206,6 @@ registering a custom ``ModelAdmin`` for ``FlatPage``::
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)
-.. versionchanged:: 1.9
-
- The ``enable_comments`` field was removed from ``FlatPageAdmin``.
-
Via the Python API
------------------
diff --git a/docs/ref/contrib/gis/db-api.txt b/docs/ref/contrib/gis/db-api.txt
index 4403fff392..f2a5c4b6c4 100644
--- a/docs/ref/contrib/gis/db-api.txt
+++ b/docs/ref/contrib/gis/db-api.txt
@@ -103,8 +103,6 @@ objects, refer to the :ref:`GEOS tutorial <geos-tutorial>`.
Creating and Saving Models with Raster Fields
=============================================
-.. versionadded:: 1.9
-
When creating raster models, the raster field will implicitly convert the input
into a :class:`~django.contrib.gis.gdal.GDALRaster` using lazy-evaluation.
The raster field will therefore accept any input that is accepted by the
diff --git a/docs/ref/contrib/gis/functions.txt b/docs/ref/contrib/gis/functions.txt
index 00dee42c57..93bbba3165 100644
--- a/docs/ref/contrib/gis/functions.txt
+++ b/docs/ref/contrib/gis/functions.txt
@@ -5,8 +5,6 @@ Geographic Database Functions
.. module:: django.contrib.gis.db.models.functions
:synopsis: Geographic Database Functions
-.. versionadded:: 1.9
-
The functions documented on this page allow users to access geographic database
functions to be used in annotations, aggregations, or filters in Django.
diff --git a/docs/ref/contrib/gis/gdal.txt b/docs/ref/contrib/gis/gdal.txt
index 82256539a0..da81ce5e03 100644
--- a/docs/ref/contrib/gis/gdal.txt
+++ b/docs/ref/contrib/gis/gdal.txt
@@ -1122,12 +1122,6 @@ blue.
>>> rst.bands[0].data()
array([[0, 1]], dtype=int8)
- .. versionchanged:: 1.9
-
- ``GDALRaster`` objects can now be instantiated directly from raw data.
- Setters have been added for the following properties: ``srs``,
- ``geotransform``, ``origin``, ``scale``, and ``skew``.
-
.. attribute:: name
The name of the source which is equivalent to the input file path or the name
@@ -1291,8 +1285,6 @@ blue.
.. method:: warp(ds_input, resampling='NearestNeighbour', max_error=0.0)
- .. versionadded:: 1.9
-
Returns a warped version of this raster.
The warping parameters can be specified through the ``ds_input``
@@ -1342,8 +1334,6 @@ blue.
.. method:: transform(srid, driver=None, name=None, resampling='NearestNeighbour', max_error=0.0)
- .. versionadded:: 1.9
-
Returns a transformed version of this raster with the specified SRID.
This function transforms the current raster into a new spatial reference
@@ -1395,8 +1385,6 @@ blue.
.. attribute:: pixel_count
- .. versionadded:: 1.9
-
The total number of pixels in this band. Is equal to ``width * height``.
.. method:: statistics(refresh=False, approximate=False)
@@ -1459,10 +1447,6 @@ blue.
To delete an existing "no data" value, set this property to ``None``
(requires GDAL ≥ 2.1).
- .. versionchanged:: 1.9
-
- This property can now be set as well.
-
.. versionchanged:: 1.10
The "no data" value can now be deleted by setting the
@@ -1479,8 +1463,6 @@ blue.
.. method:: data(data=None, offset=None, size=None, shape=None)
- .. versionadded:: 1.9
-
The accessor to the pixel values of the ``GDALBand``. Returns the complete
data array if no parameters are provided. A subset of the pixel array can
be requested by specifying an offset and block size as tuples.
diff --git a/docs/ref/contrib/gis/geoip2.txt b/docs/ref/contrib/gis/geoip2.txt
index 87fa4bf333..3870556260 100644
--- a/docs/ref/contrib/gis/geoip2.txt
+++ b/docs/ref/contrib/gis/geoip2.txt
@@ -5,8 +5,6 @@ Geolocation with GeoIP2
.. module:: django.contrib.gis.geoip2
:synopsis: Python interface for MaxMind's GeoIP2 databases.
-.. versionadded:: 1.9
-
The :class:`GeoIP2` object is a wrapper for the `MaxMind geoip2 Python
library`__. [#]_
diff --git a/docs/ref/contrib/gis/model-api.txt b/docs/ref/contrib/gis/model-api.txt
index f795ea7c20..99688c2a0a 100644
--- a/docs/ref/contrib/gis/model-api.txt
+++ b/docs/ref/contrib/gis/model-api.txt
@@ -72,8 +72,6 @@ Features specification [#fnogc]_. There is no such standard for raster data.
``RasterField``
---------------
-.. versionadded:: 1.9
-
.. class:: RasterField
``RasterField`` is currently only implemented for the PostGIS backend.
@@ -81,11 +79,6 @@ Features specification [#fnogc]_. There is no such standard for raster data.
Spatial Field Options
=====================
-.. versionchanged:: 1.9
-
- The geometry field options ``srid`` and ``spatial_index`` are now shared by
- ``GeometryField`` and ``RasterField`` through the ``BaseSpatialField``.
-
In addition to the regular :ref:`common-model-field-options` available for
Django model fields, spatial fields have the following additional options.
All are optional.
@@ -267,31 +260,6 @@ The ``GeoManager`` is required in order to use the legacy
as the legacy methods have been replaced in your code, you should be able
to remove the special ``GeoManager`` from your GIS-enabled classes.
-.. versionchanged:: 1.9
-
- In older versions, the manager was required to conduct geographic queries.
- Without it, all geographic filters failed.
-
- ``GeoManager`` was required even if the model did not have a geographic
- field itself, e.g., in the case of a ``ForeignKey`` relation to a model
- with a geographic field. For example, if we had an ``Address`` model with
- a ``ForeignKey`` to our ``Zipcode`` model::
-
- from django.contrib.gis.db import models
-
- class Address(models.Model):
- num = models.IntegerField()
- street = models.CharField(max_length=100)
- city = models.CharField(max_length=100)
- state = models.CharField(max_length=2)
- zipcode = models.ForeignKey(Zipcode, on_delete=models.CASCADE)
- objects = models.GeoManager()
-
- The geographic manager was needed to do spatial queries on related
- ``Zipcode`` objects, for example::
-
- qs = Address.objects.filter(zipcode__poly__contains='POINT(-104.590948 38.319914)')
-
.. rubric:: Footnotes
.. [#fnogc] OpenGIS Consortium, Inc., `Simple Feature Specification For SQL <http://www.opengeospatial.org/standards/sfs>`_.
.. [#fnogcsrid] *See id.* at Ch. 2.3.8, p. 39 (Geometry Values and Spatial Reference Systems).
diff --git a/docs/ref/contrib/gis/serializers.txt b/docs/ref/contrib/gis/serializers.txt
index 7d2b80a217..14137d2e1a 100644
--- a/docs/ref/contrib/gis/serializers.txt
+++ b/docs/ref/contrib/gis/serializers.txt
@@ -12,11 +12,6 @@ The GDAL library is required if any of the serialized geometries need
coordinate transformations (that is if the geometry's spatial reference system
differs from the ``srid`` serializer option).
-.. versionchanged:: 1.9
-
- The GeoJSON serializer no longer needs GDAL if all geometries are in the
- same coordinate system as the ``srid`` serializer option.
-
__ http://geojson.org/
The ``geojson`` serializer is not meant for round-tripping data, as it has no
diff --git a/docs/ref/contrib/postgres/aggregates.txt b/docs/ref/contrib/postgres/aggregates.txt
index 30974989c2..943b0b9373 100644
--- a/docs/ref/contrib/postgres/aggregates.txt
+++ b/docs/ref/contrib/postgres/aggregates.txt
@@ -5,8 +5,6 @@ PostgreSQL specific aggregation functions
.. module:: django.contrib.postgres.aggregates
:synopsis: PostgreSQL specific aggregation functions
-.. versionadded:: 1.9
-
These functions are described in more detail in the `PostgreSQL docs
<http://www.postgresql.org/docs/current/static/functions-aggregate.html>`_.
diff --git a/docs/ref/contrib/postgres/fields.txt b/docs/ref/contrib/postgres/fields.txt
index b7938dcb2f..fdb69a7370 100644
--- a/docs/ref/contrib/postgres/fields.txt
+++ b/docs/ref/contrib/postgres/fields.txt
@@ -397,8 +397,6 @@ Returns objects where the given key is in the data. Uses the SQL operator
``has_any_keys``
~~~~~~~~~~~~~~~~
-.. versionadded:: 1.9
-
Returns objects where any of the given keys are in the data. Uses the SQL
operator ``?|``. For example::
@@ -460,8 +458,6 @@ using in conjunction with lookups on
``JSONField``
=============
-.. versionadded:: 1.9
-
.. class:: JSONField(**options)
A field for storing JSON encoded data. In Python the data is represented in
diff --git a/docs/ref/contrib/postgres/functions.txt b/docs/ref/contrib/postgres/functions.txt
index cc76cdd0e4..465d423f6d 100644
--- a/docs/ref/contrib/postgres/functions.txt
+++ b/docs/ref/contrib/postgres/functions.txt
@@ -12,8 +12,6 @@ All of these functions are available from the
.. class:: TransactionNow()
-.. versionadded:: 1.9
-
Returns the date and time on the database server that the current transaction
started. If you are not in a transaction it will return the date and time of
the current statement. This is a complement to
diff --git a/docs/ref/contrib/sites.txt b/docs/ref/contrib/sites.txt
index ec2c1bf2b2..2ff5fc6490 100644
--- a/docs/ref/contrib/sites.txt
+++ b/docs/ref/contrib/sites.txt
@@ -24,11 +24,6 @@ The sites framework is mainly based on a simple model:
The fully qualified domain name associated with the website.
For example, ``www.example.com``.
- .. versionchanged:: 1.9
-
- The ``domain`` field was set to be
- :attr:`~django.db.models.Field.unique`.
-
.. attribute:: name
A human-readable "verbose" name for the website.
@@ -508,7 +503,3 @@ Finally, to avoid repetitive fallback code, the framework provides a
only. This does not apply to
:class:`~django.contrib.sites.requests.RequestSite` which will always
use the unmodified host.
-
- .. versionchanged:: 1.9
-
- Retrying the lookup with the port stripped was added.
diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt
index 5f2e5f909b..599d15053e 100644
--- a/docs/ref/contrib/staticfiles.txt
+++ b/docs/ref/contrib/staticfiles.txt
@@ -92,10 +92,6 @@ Some commonly used options are:
Do NOT prompt the user for input of any kind.
- .. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
.. django-admin-option:: --ignore PATTERN, -i PATTERN
Ignore files or directories matching this glob-style pattern. Use multiple
diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt
index 5146c98fed..25851c94a3 100644
--- a/docs/ref/contrib/syndication.txt
+++ b/docs/ref/contrib/syndication.txt
@@ -303,11 +303,6 @@ enclosure per item, the ``item_enclosure_url``, ``item_enclosure_length``, and
``item_enclosure_mime_type`` hooks. See the ``ExampleFeed`` class below for
usage examples.
-.. versionchanged:: 1.9
-
- Support for multiple enclosures per feed item was added through the
- ``item_enclosures`` hook.
-
Language
--------
diff --git a/docs/ref/csrf.txt b/docs/ref/csrf.txt
index fcb3bb4e33..01054c2079 100644
--- a/docs/ref/csrf.txt
+++ b/docs/ref/csrf.txt
@@ -289,10 +289,6 @@ the HOST header <host-headers-virtual-hosting>` and that there aren't any
(because XSS vulnerabilities already let an attacker do anything a CSRF
vulnerability allows and much worse).
-.. versionchanged:: 1.9
-
- Checking against the :setting:`CSRF_COOKIE_DOMAIN` setting was added.
-
.. versionchanged:: 1.10
Added salting to the token and started changing it with each request
diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
index 55e263477b..12c43f3dab 100644
--- a/docs/ref/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -34,10 +34,6 @@ The command-line examples throughout this document use ``django-admin`` to
be consistent, but any example can use ``manage.py`` or ``python -m django``
just as well.
-.. versionadded:: 1.9
-
- ``python -m django`` was added.
-
Usage
=====
@@ -168,11 +164,6 @@ are excluded.
Includes fuzzy translations into compiled files.
-.. versionchanged:: 1.9
-
- ``compilemessages`` now matches the operation of :djadmin:`makemessages`,
- scanning the project tree for ``.po`` files to compile.
-
Example usage::
django-admin compilemessages --locale=pt_BR
@@ -203,10 +194,6 @@ Specifies the database in which the cache table(s) will be created. Defaults to
Prints the SQL that would be run without actually running it, so you can
customize it or use the migrations framework.
-.. versionchanged:: 1.9
-
- The ``--dry-run`` option was added.
-
``dbshell``
-----------
@@ -324,10 +311,6 @@ standard output.
When this option is set and ``--verbosity`` is greater than 0 (the default), a
progress bar is shown in the terminal.
-.. versionchanged:: 1.9
-
- The progress bar in the terminal was added.
-
``flush``
---------
@@ -343,10 +326,6 @@ should drop and recreate the database and then run :djadmin:`migrate` instead.
Suppresses all user prompts.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
.. django-admin-option:: --database DATABASE
Specifies the database to flush. Defaults to ``default``.
@@ -684,10 +663,6 @@ of a ``ForeignKey``, for example).
Suppresses all user prompts. If a suppressed prompt cannot be resolved
automatically, the command will exit with error code 3.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
.. django-admin-option:: --empty
Outputs an empty migration for the specified apps, for manual editing. This is
@@ -774,8 +749,6 @@ schema matches what is recorded in your initial migration.
.. django-admin-option:: --run-syncdb
-.. versionadded:: 1.9
-
Allows creating tables for apps without migrations. While this isn't
recommended, the migrations framework is sometimes too slow on large projects
with hundreds of models.
@@ -785,10 +758,6 @@ with hundreds of models.
Suppresses all user prompts. An example prompt is asking about removing stale
content types.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
``runserver``
-------------
@@ -925,8 +894,6 @@ you want to configure Django to serve static media, read
.. django-admin:: sendtestemail [email [email ...]]
-.. versionadded:: 1.9
-
Sends a test email (to confirm email sending through Django is working) to the
recipient(s) specified. For example::
@@ -1053,12 +1020,6 @@ for running the migration in the forwards direction.
Specifies the database for which to generate the SQL. Defaults to ``default``.
-.. versionchanged:: 1.9
-
- To increase the readability of the overall SQL output the SQL code
- generated for each migration operation is preceded by the operation's
- description.
-
``sqlsequencereset``
--------------------
@@ -1086,8 +1047,6 @@ down into fewer migrations, if possible. The resulting squashed migrations
can live alongside the unsquashed ones safely. For more information,
please read :ref:`migration-squashing`.
-.. versionadded:: 1.9
-
When ``start_migration_name`` is given, Django will only include migrations
starting from and including this migration. This helps to mitigate the
squashing limitation of :class:`~django.db.migrations.operations.RunPython` and
@@ -1105,10 +1064,6 @@ behavior, as optimization is meant to be safe.
Suppresses all user prompts.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
``startapp``
------------
@@ -1173,10 +1128,6 @@ files is:
- ``camel_case_app_name`` -- the app name in camel case format
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
-.. versionadded:: 1.9
-
- ``camel_case_app_name`` was added.
-
.. _render_warning:
.. warning::
@@ -1195,10 +1146,6 @@ files is:
byte-compile invalid ``*.py`` files, template files ending with ``.py-tpl``
will be renamed to ``.py``.
- .. versionchanged:: 1.9.2
-
- Renaming of ``.py-tpl`` to ``.py`` was added.
-
.. _source: https://github.com/django/django/tree/master/django/conf/app_template/
``startproject``
@@ -1278,19 +1225,11 @@ Overrides the default address where the live server (used with
:class:`~django.test.LiveServerTestCase`) is expected to run from. The default
value is ``localhost:8081-8179``.
-.. versionchanged:: 1.9
-
- In earlier versions, the default value was ``localhost:8081``.
-
.. django-admin-option:: --noinput, --no-input
Suppresses all user prompts. A typical prompt is a warning about deleting an
existing test database.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
Test runner options
~~~~~~~~~~~~~~~~~~~
@@ -1320,8 +1259,6 @@ Enables :ref:`SQL logging <django-db-logger>` for failing tests. If
.. django-admin-option:: --parallel [N]
-.. versionadded:: 1.9
-
Runs tests in separate parallel processes. Since modern processors have
multiple cores, this allows running tests significantly faster.
@@ -1441,10 +1378,6 @@ To run on 1.2.3.4:7000 with a ``test`` fixture::
Suppresses all user prompts. A typical prompt is a warning about deleting an
existing test database.
-.. versionchanged:: 1.9
-
- The ``--no-input`` alias was added.
-
Commands provided by applications
=================================
@@ -1696,10 +1629,6 @@ number of roles in which color is used:
* ``migrate_heading`` - A heading in a migrations management command.
* ``migrate_label`` - A migration name.
-.. versionchanged:: 1.9
-
- ``success`` was added.
-
Each of these roles can be assigned a specific foreground and
background color, from the following list:
diff --git a/docs/ref/files/file.txt b/docs/ref/files/file.txt
index a669e7c1a9..e88032ab66 100644
--- a/docs/ref/files/file.txt
+++ b/docs/ref/files/file.txt
@@ -95,10 +95,6 @@ The ``File`` class
``truncate``, ``writelines``, ``xreadlines``. If you are using
Python 3, the ``seekable`` method is also available.
- .. versionchanged:: 1.9
-
- The ``seekable`` method was added.
-
.. currentmodule:: django.core.files.base
The ``ContentFile`` class
diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt
index c468dc38a0..9e9388344a 100644
--- a/docs/ref/forms/api.txt
+++ b/docs/ref/forms/api.txt
@@ -716,8 +716,6 @@ There are several other ways to customize the order:
.. attribute:: Form.field_order
-.. versionadded:: 1.9
-
By default ``Form.field_order=None``, which retains the order in which you
define the fields in your form class. If ``field_order`` is a list of field
names, the fields are ordered as specified by the list and remaining fields are
@@ -732,8 +730,6 @@ the ``Form``, then the latter ``field_order`` will have precedence.
.. method:: Form.order_fields(field_order)
-.. versionadded:: 1.9
-
You may rearrange the fields any time using ``order_fields()`` with a list of
field names as in :attr:`~django.forms.Form.field_order`.
@@ -1013,8 +1009,6 @@ Methods of ``BoundField``
Customizing ``BoundField``
==========================
-.. versionadded:: 1.9
-
If you need to access some additional information about a form field in a
template and using a subclass of :class:`~django.forms.Field` isn't
sufficient, consider also customizing :class:`~django.forms.BoundField`.
@@ -1201,7 +1195,3 @@ The prefix can also be specified on the form class::
>>> class PersonForm(forms.Form):
... ...
... prefix = 'person'
-
-.. versionadded:: 1.9
-
- The ability to specify ``prefix`` on the form class was added.
diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt
index b81dbef61c..13b937b117 100644
--- a/docs/ref/forms/fields.txt
+++ b/docs/ref/forms/fields.txt
@@ -305,8 +305,6 @@ more information.
.. attribute:: Field.disabled
-.. versionadded:: 1.9
-
The ``disabled`` boolean argument, when set to ``True``, disables a form field
using the ``disabled`` HTML attribute so that it won't be editable by users.
Even if a user tampers with the field's value submitted to the server, it will
@@ -379,8 +377,6 @@ For each field, we describe the default widget used if you don't specify
.. attribute:: strip
- .. versionadded:: 1.9
-
If ``True`` (default), the value will be stripped of leading and
trailing whitespace.
@@ -834,8 +830,6 @@ For each field, we describe the default widget used if you don't specify
.. attribute:: strip
- .. versionadded:: 1.9
-
Defaults to ``False``. If enabled, stripping will be applied before the
regex validation.
@@ -858,8 +852,6 @@ For each field, we describe the default widget used if you don't specify
.. attribute:: allow_unicode
- .. versionadded:: 1.9
-
A boolean instructing the field to accept Unicode letters in addition
to ASCII letters. Defaults to ``False``.
diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt
index 1fa2e958ad..c5ddf99011 100644
--- a/docs/ref/forms/models.txt
+++ b/docs/ref/forms/models.txt
@@ -49,10 +49,6 @@ Model Form API reference. For introductory material about model forms, see the
information. Omitting any definition of the fields to use will result in
an :exc:`~django.core.exceptions.ImproperlyConfigured` exception.
- .. versionadded:: 1.9
-
- The ``field_classes`` keyword argument was added.
-
``modelformset_factory``
========================
@@ -72,10 +68,6 @@ Model Form API reference. For introductory material about model forms, see the
See :ref:`model-formsets` for example usage.
- .. versionadded:: 1.9
-
- The ``field_classes`` keyword argument was added.
-
``inlineformset_factory``
=========================
@@ -89,7 +81,3 @@ Model Form API reference. For introductory material about model forms, see the
the ``parent_model``, you must specify a ``fk_name``.
See :ref:`inline-formsets` for example usage.
-
- .. versionadded:: 1.9
-
- The ``field_classes`` keyword argument was added.
diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt
index 88ac06903c..850905fb40 100644
--- a/docs/ref/forms/widgets.txt
+++ b/docs/ref/forms/widgets.txt
@@ -223,11 +223,6 @@ foundation for custom widgets.
microseconds part of :class:`~datetime.datetime` and
:class:`~datetime.time` values will be set to ``0``.
- .. versionadded:: 1.9
-
- In older versions, this attribute was only defined on the date
- and time widgets (as ``False``).
-
.. method:: format_value(value)
Cleans and returns a value for use in the widget template. ``value``
@@ -843,9 +838,3 @@ Composite widgets
empty_label=("Choose Year", "Choose Month", "Choose Day"),
),
)
-
- .. versionchanged:: 1.9
-
- This widget used to be located in the ``django.forms.extras.widgets``
- package. It is now defined in ``django.forms.widgets`` and like the
- other widgets it can be imported directly from ``django.forms``.
diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt
index 961e4a272f..8b991d5ed8 100644
--- a/docs/ref/middleware.txt
+++ b/docs/ref/middleware.txt
@@ -407,8 +407,6 @@ Middleware for utilizing Web server provided authentication. See
.. class:: PersistentRemoteUserMiddleware
-.. versionadded:: 1.9
-
Middleware for utilizing Web server provided authentication when enabled only
on the login page. See :ref:`persistent-remote-user-middleware-howto` for usage
details.
diff --git a/docs/ref/models/database-functions.txt b/docs/ref/models/database-functions.txt
index f6db325540..8b5342c54b 100644
--- a/docs/ref/models/database-functions.txt
+++ b/docs/ref/models/database-functions.txt
@@ -114,8 +114,6 @@ Usage example::
.. class:: Greatest(*expressions, **extra)
-.. versionadded:: 1.9
-
Accepts a list of at least two field names or expressions and returns the
greatest value. Each argument must be of a similar type, so mixing text and
numbers will result in a database error.
@@ -158,8 +156,6 @@ and ``comment.modified``.
.. class:: Least(*expressions, **extra)
-.. versionadded:: 1.9
-
Accepts a list of at least two field names or expressions and returns the
least value. Each argument must be of a similar type, so mixing text and numbers
will result in a database error.
@@ -204,10 +200,6 @@ It can also be registered as a transform. For example::
>>> # Get authors whose name is longer than 7 characters
>>> authors = Author.objects.filter(name__length__gt=7)
-.. versionchanged:: 1.9
-
- The ability to register the function as a transform was added.
-
``Lower``
=========
@@ -226,17 +218,11 @@ Usage example::
>>> print(author.name_lower)
margaret smith
-.. versionchanged:: 1.9
-
- The ability to register the function as a transform was added.
-
``Now``
=======
.. class:: Now()
-.. versionadded:: 1.9
-
Returns the database server's current date and time when the query is executed,
typically using the SQL ``CURRENT_TIMESTAMP``.
@@ -290,10 +276,6 @@ Usage example::
>>> print(author.name_upper)
MARGARET SMITH
-.. versionchanged:: 1.9
-
- The ability to register the function as a transform was added.
-
Date Functions
==============
diff --git a/docs/ref/models/expressions.txt b/docs/ref/models/expressions.txt
index d29d8d05b4..b091cf9fc8 100644
--- a/docs/ref/models/expressions.txt
+++ b/docs/ref/models/expressions.txt
@@ -10,10 +10,6 @@ number of built-in expressions (documented below) that can be used to help you
write queries. Expressions can be combined, or in some cases nested, to form
more complex computations.
-.. versionchanged:: 1.9
-
- Support for using expressions when creating new model instances was added.
-
Supported arithmetic
====================
diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt
index bafe881cd9..35871a6cd1 100644
--- a/docs/ref/models/fields.txt
+++ b/docs/ref/models/fields.txt
@@ -1064,8 +1064,6 @@ of some other value. You can do this automatically in the admin using
.. attribute:: SlugField.allow_unicode
- .. versionadded:: 1.9
-
If ``True``, the field accepts Unicode letters in addition to ASCII
letters. Defaults to ``False``.
@@ -1165,12 +1163,6 @@ Django also defines a set of fields that represent relations.
A many-to-one relationship. Requires a positional argument: the class to which
the model is related.
-.. versionchanged:: 1.9
-
- ``on_delete`` can now be used as the second positional argument (previously
- it was typically only passed as a keyword argument). It will be a required
- argument in Django 2.0.
-
.. _recursive-relationships:
To create a recursive relationship -- an object that has a many-to-one
@@ -1672,12 +1664,6 @@ A one-to-one relationship. Conceptually, this is similar to a
:class:`ForeignKey` with :attr:`unique=True <Field.unique>`, but the
"reverse" side of the relation will directly return a single object.
-.. versionchanged:: 1.9
-
- ``on_delete`` can now be used as the second positional argument (previously
- it was typically only passed as a keyword argument). It will be a required
- argument in Django 2.0.
-
This is most useful as the primary key of a model which "extends"
another model in some way; :ref:`multi-table-inheritance` is
implemented by adding an implicit one-to-one relation from the child
diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt
index 517c29e867..3b62675294 100644
--- a/docs/ref/models/instances.txt
+++ b/docs/ref/models/instances.txt
@@ -564,14 +564,6 @@ Sometimes with :ref:`multi-table inheritance <multi-table-inheritance>` you may
want to delete only a child model's data. Specifying ``keep_parents=True`` will
keep the parent model's data.
-.. versionchanged:: 1.9
-
- The ``keep_parents`` parameter was added.
-
-.. versionchanged:: 1.9
-
- The return value describing the number of objects deleted was added.
-
Pickling objects
================
diff --git a/docs/ref/models/lookups.txt b/docs/ref/models/lookups.txt
index 49083c1f61..efa38d9a41 100644
--- a/docs/ref/models/lookups.txt
+++ b/docs/ref/models/lookups.txt
@@ -50,10 +50,6 @@ register lookups on itself. The two prominent examples are
the same name. ``lookup_name`` will be used for this lookup if
provided, otherwise ``lookup.lookup_name`` will be used.
- .. versionchanged:: 1.9
-
- The ``lookup_name`` parameter was added.
-
.. method:: get_lookup(lookup_name)
Returns the :class:`Lookup` named ``lookup_name`` registered in the class.
@@ -140,10 +136,6 @@ following methods:
one argument. It can also be used on the right hand side of a filter or
directly as an annotation.
- .. versionchanged:: 1.9
-
- ``Transform`` is now a subclass of ``Func``.
-
.. attribute:: bilateral
A boolean indicating whether this transformation should apply to both
diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt
index 9c77899d09..8e2aa6d432 100644
--- a/docs/ref/models/options.txt
+++ b/docs/ref/models/options.txt
@@ -29,8 +29,6 @@ Available ``Meta`` options
app_label = 'myapp'
- .. versionadded:: 1.9
-
If you want to represent a model with the format ``app_label.object_name``
or ``app_label.model_name`` you can use ``model._meta.label``
or ``model._meta.label_lower`` respectively.
@@ -352,8 +350,6 @@ The name of the manager to use for the model's
.. attribute:: Options.required_db_features
- .. versionadded:: 1.9
-
List of database features that the current connection should have so that
the model is considered during the migration phase. For example, if you set
this list to ``['gis_enabled']``, the model will only be synchronized on
@@ -366,8 +362,6 @@ The name of the manager to use for the model's
.. attribute:: Options.required_db_vendor
- .. versionadded:: 1.9
-
Name of a supported database vendor that this model is specific to. Current
built-in vendor names are: ``sqlite``, ``postgresql``, ``mysql``,
``oracle``. If this attribute is not empty and the current connection vendor
@@ -471,8 +465,6 @@ Read-only ``Meta`` attributes
.. attribute:: Options.label
- .. versionadded:: 1.9
-
Representation of the object, returns ``app_label.object_name``, e.g.
``'polls.Question'``.
@@ -481,7 +473,5 @@ Read-only ``Meta`` attributes
.. attribute:: Options.label_lower
- .. versionadded:: 1.9
-
Representation of the model, returns ``app_label.model_name``, e.g.
``'polls.question'``.
diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt
index 7a67438b38..6c05c7dc0b 100644
--- a/docs/ref/models/querysets.txt
+++ b/docs/ref/models/querysets.txt
@@ -1831,10 +1831,6 @@ This has a number of caveats though:
unless the database backend supports it (currently PostgreSQL).
* It does not work with many-to-many relationships.
-.. versionchanged:: 1.9
-
- Support for using ``bulk_create()`` with proxy models was added.
-
.. versionchanged:: 1.10
Support for setting primary keys on objects created using ``bulk_create()``
@@ -2169,10 +2165,6 @@ For example, to delete all the entries in a particular blog::
>>> Entry.objects.filter(blog=b).delete()
(4, {'weblog.Entry': 2, 'weblog.Entry_authors': 2})
-.. versionchanged:: 1.9
-
- The return value describing the number of objects deleted was added.
-
By default, Django's :class:`~django.db.models.ForeignKey` emulates the SQL
constraint ``ON DELETE CASCADE`` — in other words, any objects with foreign
keys pointing at the objects to be deleted will be deleted along with them.
@@ -2548,8 +2540,6 @@ numbers and even characters.
``date``
~~~~~~~~
-.. versionadded:: 1.9
-
For datetime fields, casts the value as date. Allows chaining additional field
lookups. Takes a date value.
@@ -2587,10 +2577,6 @@ SQL equivalent::
When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
current time zone before filtering.
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: month
``month``
@@ -2615,10 +2601,6 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
current time zone before filtering. This requires :ref:`time zone definitions
in the database <database-time-zone-definitions>`.
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: day
``day``
@@ -2646,10 +2628,6 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
current time zone before filtering. This requires :ref:`time zone definitions
in the database <database-time-zone-definitions>`.
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: week_day
``week_day``
@@ -2677,10 +2655,6 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
current time zone before filtering. This requires :ref:`time zone definitions
in the database <database-time-zone-definitions>`.
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: hour
``hour``
@@ -2706,15 +2680,6 @@ SQL equivalent::
For datetime fields, when :setting:`USE_TZ` is ``True``, values are converted
to the current time zone before filtering.
-.. versionchanged:: 1.9
-
- Added support for :class:`~django.db.models.TimeField` on SQLite (other
- databases supported it as of 1.7).
-
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: minute
``minute``
@@ -2740,15 +2705,6 @@ SQL equivalent::
For datetime fields, When :setting:`USE_TZ` is ``True``, values are converted
to the current time zone before filtering.
-.. versionchanged:: 1.9
-
- Added support for :class:`~django.db.models.TimeField` on SQLite (other
- databases supported it as of 1.7).
-
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: second
``second``
@@ -2774,15 +2730,6 @@ SQL equivalent::
For datetime fields, when :setting:`USE_TZ` is ``True``, values are converted
to the current time zone before filtering.
-.. versionchanged:: 1.9
-
- Added support for :class:`~django.db.models.TimeField` on SQLite (other
- databases supported it as of 1.7).
-
-.. versionchanged:: 1.9
-
- Allowed chaining additional field lookups.
-
.. fieldlookup:: isnull
``isnull``
@@ -2942,11 +2889,6 @@ by the aggregate.
* Return type: ``float`` (or the type of whatever ``output_field`` is
specified)
- .. versionchanged:: 1.9
-
- The ``output_field`` parameter was added to allow aggregating over
- non-numeric columns, such as ``DurationField``.
-
``Count``
~~~~~~~~~
diff --git a/docs/ref/models/relations.txt b/docs/ref/models/relations.txt
index 2014eb9b43..39492e8a14 100644
--- a/docs/ref/models/relations.txt
+++ b/docs/ref/models/relations.txt
@@ -62,12 +62,6 @@ Related objects reference
some custom logic when a relationship is created, listen to the
:data:`~django.db.models.signals.m2m_changed` signal.
- .. versionchanged:: 1.9
-
- The ``bulk`` parameter was added. In older versions, foreign key
- updates were always done using ``save()``. Use ``bulk=False`` if
- you require the old behavior.
-
.. method:: create(**kwargs)
Creates a new object, saves it and puts it in the related object set.
@@ -147,8 +141,6 @@ Related objects reference
.. method:: set(objs, bulk=True, clear=False)
- .. versionadded:: 1.9
-
Replace the set of related objects::
>>> new_list = [obj1, obj2, obj3]
@@ -191,12 +183,6 @@ will first disassociate any existing objects in the related set before adding
the contents of ``new_list``. Otherwise the objects in ``new_list`` will be
added to the existing related object set.
-.. versionchanged:: 1.9
-
- In earlier versions, direct assignment used to perform ``clear()`` followed
- by ``add()``. It now performs a ``set()`` with the keyword argument
- ``clear=False``.
-
.. deprecated:: 1.10
Direct assignment is deprecated in favor of the
diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt
index bc6f796a10..4dc801429e 100644
--- a/docs/ref/request-response.txt
+++ b/docs/ref/request-response.txt
@@ -200,11 +200,6 @@ application.
``urlconf`` can be set to ``None`` to revert any changes made by previous
middleware and return to using the :setting:`ROOT_URLCONF`.
- .. versionchanged:: 1.9
-
- Setting ``urlconf=None`` raised
- :exc:`~django.core.exceptions.ImproperlyConfigured` in older versions.
-
Attributes set by middleware
----------------------------
@@ -284,8 +279,6 @@ Methods
.. method:: HttpRequest.get_port()
- .. versionadded:: 1.9
-
Returns the originating port of the request using information from the
``HTTP_X_FORWARDED_PORT`` (if :setting:`USE_X_FORWARDED_PORT` is enabled)
and ``SERVER_PORT`` ``META`` variables, in that order.
@@ -689,24 +682,17 @@ Attributes
The :rfc:`HTTP status code <7231#section-6>` for the response.
- .. versionchanged:: 1.9
-
- Unless :attr:`reason_phrase` is explicitly set, modifying the value of
- ``status_code`` outside the constructor will also modify the value of
- ``reason_phrase``.
+ Unless :attr:`reason_phrase` is explicitly set, modifying the value of
+ ``status_code`` outside the constructor will also modify the value of
+ ``reason_phrase``.
.. attribute:: HttpResponse.reason_phrase
- The HTTP reason phrase for the response.
-
- .. versionchanged:: 1.9
-
- ``reason_phrase`` no longer defaults to all capital letters. It now
- uses the :rfc:`HTTP standard's <7231#section-6.1>` default reason
- phrases.
+ The HTTP reason phrase for the response. It uses the :rfc:`HTTP standard's
+ <7231#section-6.1>` default reason phrases.
- Unless explicitly set, ``reason_phrase`` is determined by the current
- value of :attr:`status_code`.
+ Unless explicitly set, ``reason_phrase`` is determined by the value of
+ :attr:`status_code`.
.. attribute:: HttpResponse.streaming
@@ -962,10 +948,6 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in
The ``json_dumps_params`` parameter is a dictionary of keyword arguments
to pass to the ``json.dumps()`` call used to generate the response.
- .. versionchanged:: 1.9
-
- The ``json_dumps_params`` argument was added.
-
Usage
-----
@@ -976,7 +958,6 @@ Typical usage could look like::
>>> response.content
b'{"foo": "bar"}'
-
Serializing non-dictionary objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1058,24 +1039,17 @@ Attributes
The :rfc:`HTTP status code <7231#section-6>` for the response.
- .. versionchanged:: 1.9
-
- Unless :attr:`reason_phrase` is explicitly set, modifying the value of
- ``status_code`` outside the constructor will also modify the value of
- ``reason_phrase``.
+ Unless :attr:`reason_phrase` is explicitly set, modifying the value of
+ ``status_code`` outside the constructor will also modify the value of
+ ``reason_phrase``.
.. attribute:: StreamingHttpResponse.reason_phrase
- The HTTP reason phrase for the response.
-
- .. versionchanged:: 1.9
-
- ``reason_phrase`` no longer defaults to all capital letters. It now
- uses the :rfc:`HTTP standard's <7231#section-6.1>` default reason
- phrases.
+ The HTTP reason phrase for the response. It uses the :rfc:`HTTP standard's
+ <7231#section-6.1>` default reason phrases.
- Unless explicitly set, ``reason_phrase`` is determined by the current
- value of :attr:`status_code`.
+ Unless explicitly set, ``reason_phrase`` is determined by the value of
+ :attr:`status_code`.
.. attribute:: StreamingHttpResponse.streaming
diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt
index b7ba1f6b5e..832f2a8b08 100644
--- a/docs/ref/settings.txt
+++ b/docs/ref/settings.txt
@@ -399,8 +399,6 @@ exists, it will be used to render the page.
``CSRF_HEADER_NAME``
--------------------
-.. versionadded:: 1.9
-
Default: ``'HTTP_X_CSRFTOKEN'``
The name of the request header used for CSRF authentication.
@@ -416,8 +414,6 @@ should be ``'HTTP_X_XSRF_TOKEN'``.
``CSRF_TRUSTED_ORIGINS``
------------------------
-.. versionadded:: 1.9
-
Default: ``[]`` (Empty list)
A list of hosts which are trusted origins for unsafe requests (e.g. ``POST``).
@@ -510,12 +506,6 @@ The database backend to use. The built-in database backends are:
You can use a database backend that doesn't ship with Django by setting
``ENGINE`` to a fully-qualified path (i.e. ``mypackage.backends.whatever``).
-.. versionchanged:: 1.9
-
- The ``django.db.backends.postgresql`` backend is named
- ``django.db.backends.postgresql_psycopg2`` in older releases. For backwards
- compatibility, the old name still works in newer versions.
-
.. setting:: HOST
``HOST``
@@ -603,8 +593,6 @@ default port. Not used with SQLite.
``TIME_ZONE``
~~~~~~~~~~~~~
-.. versionadded:: 1.9
-
Default: ``None``
A string representing the time zone for datetimes stored in this database
@@ -624,11 +612,6 @@ according to this option if it is set and in UTC if it isn't.
When :setting:`USE_TZ` is ``True`` and the database supports time zones (e.g.
PostgreSQL), it is an error to set this option.
-.. versionchanged:: 1.9
-
- Before Django 1.9, the PostgreSQL database backend accepted an
- undocumented ``TIME_ZONE`` option, which caused data corruption.
-
When :setting:`USE_TZ` is ``False``, it is an error to set this option.
.. _pytz: http://pytz.sourceforge.net/
@@ -1900,8 +1883,6 @@ the ``blog.db_migrations`` package.
If you provide the ``app_label`` argument, :djadmin:`makemigrations` will
automatically create the package if it doesn't already exist.
-.. versionadded:: 1.9
-
When you supply ``None`` as a value for an app, Django will consider the app as
an app without migrations regardless of an existing ``migrations`` submodule.
This can be used, for example, in a test settings file to skip migrations while
@@ -2259,11 +2240,6 @@ A list of identifiers of messages generated by the system check framework
(i.e. ``["models.W001"]``) that you wish to permanently acknowledge and ignore.
Silenced checks will not be output to the console.
-.. versionchanged:: 1.9
-
- In older versions, silenced messages of ``ERROR`` level or higher were
- printed to the console.
-
See also the :doc:`/ref/checks` documentation.
.. setting:: TEMPLATES
@@ -2595,8 +2571,6 @@ number, in which case you shouldn't use :setting:`USE_X_FORWARDED_PORT`.
``USE_X_FORWARDED_PORT``
------------------------
-.. versionadded:: 1.9
-
Default: ``False``
A boolean that specifies whether to use the ``X-Forwarded-Port`` header in
@@ -2789,8 +2763,6 @@ Default::
``AUTH_PASSWORD_VALIDATORS``
----------------------------
-.. versionadded:: 1.9
-
Default: ``[]`` (Empty list)
The list of validators that are used to check the strength of user's passwords.
diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt
index 1bfb1f87a5..94492702ca 100644
--- a/docs/ref/templates/api.txt
+++ b/docs/ref/templates/api.txt
@@ -140,10 +140,6 @@ what's passed by :class:`~django.template.backends.django.DjangoTemplates`.
Tags and filters from built-in libraries can be used without first calling
the :ttag:`{% load %}<load>` tag.
-.. versionadded:: 1.9
-
- The ``libraries`` and ``builtins`` arguments were added.
-
.. staticmethod:: Engine.get_default()
When a Django project configures one and only one
@@ -449,8 +445,6 @@ dictionary syntax::
.. method:: Context.setdefault(key, default=None)
- .. versionadded:: 1.9
-
If ``key`` is in the context, returns its value. Otherwise inserts ``key``
with a value of ``default`` and returns ``default``.
@@ -533,10 +527,6 @@ matching ``pop()`` is called.
>>> c['foo']
'first level'
-.. versionadded:: 1.9
-
- The ability to use ``update()`` as a context manager was added.
-
Using a ``Context`` as a stack comes in handy in :ref:`some custom template
tags <howto-writing-custom-template-tags>`.
@@ -974,11 +964,6 @@ loaders. Custom ``Loader`` classes should inherit from
``django.template.loaders.base.Loader`` and define the ``get_contents()`` and
``get_template_sources()`` methods.
-.. versionchanged:: 1.9
-
- In previous versions of Django, custom loaders defined a single method:
- ``load_template_source()``.
-
Loader methods
--------------
@@ -1073,13 +1058,6 @@ Template origin
Templates have an ``origin`` containing attributes depending on the source
they are loaded from.
-.. versionchanged:: 1.9
-
- Django used to create an origin based on
- ``django.template.loader.LoaderOrigin`` or
- ``django.template.base.StringOrigin``. These have been replaced by
- ``django.template.base.Origin``.
-
.. class:: Origin
.. attribute:: name
diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt
index f44dbb0a6f..46b4ddaa89 100644
--- a/docs/ref/templates/builtins.txt
+++ b/docs/ref/templates/builtins.txt
@@ -296,10 +296,6 @@ Or if only some variables should be escaped, you can use::
You can use the syntax ``{% firstof var1 var2 var3 as value %}`` to store the
output inside a variable.
-.. versionadded:: 1.9
-
- The "as" syntax was added.
-
.. templatetag:: for
``for``
@@ -732,10 +728,6 @@ is turned off, ``{% include %}`` logs a warning to the ``django.template``
logger with the exception that happens while rendering the included template
and returns an empty string.
-.. versionchanged:: 1.9
-
- Template logging now includes the warning logging mentioned above.
-
.. note::
The :ttag:`include` tag should be considered as an implementation of
"render this subtemplate and include the HTML", not as "parse this
diff --git a/docs/ref/urlresolvers.txt b/docs/ref/urlresolvers.txt
index 6403e21c33..bb2d10b392 100644
--- a/docs/ref/urlresolvers.txt
+++ b/docs/ref/urlresolvers.txt
@@ -144,8 +144,6 @@ If the URL does not resolve, the function raises a
.. attribute:: ResolverMatch.app_names
- .. versionadded:: 1.9
-
The list of individual namespace components in the full
application namespace for the URL pattern that matches the URL.
For example, if the ``app_name`` is ``'foo:bar'``, then ``app_names``
diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt
index 1b527277af..d97a0becb1 100644
--- a/docs/ref/utils.txt
+++ b/docs/ref/utils.txt
@@ -161,12 +161,6 @@ The functions defined in this module share the following properties:
See :ref:`decorating class based views <decorating-class-based-views>` for
example usage.
- .. versionchanged:: 1.9
-
- The ability to decorate classes, the ``name`` parameter, and the ability
- for ``decorator`` to accept a list/tuple of decorator functions were
- added.
-
.. function:: decorator_from_middleware(middleware_class)
Given a middleware class, returns a view decorator. This lets you use
@@ -883,10 +877,6 @@ appropriate entities.
If ``value`` is ``"你好 World"``, the output will be ``"你好-world"``.
- .. versionchanged:: 1.9
-
- The ``allow_unicode`` parameter was added.
-
.. _time-zone-selection-functions:
``django.utils.timezone``
@@ -1012,10 +1002,6 @@ appropriate entities.
``is_dst`` has no effect when ``pytz`` is not installed.
- .. versionchanged:: 1.9
-
- The ``is_dst`` argument was added.
-
.. function:: make_naive(value, timezone=None)
Returns an naive :class:`~datetime.datetime` that represents in
diff --git a/docs/ref/validators.txt b/docs/ref/validators.txt
index f6feca58c9..7c82f21605 100644
--- a/docs/ref/validators.txt
+++ b/docs/ref/validators.txt
@@ -187,8 +187,6 @@ to, or in lieu of custom ``field.clean()`` methods.
.. data:: validate_unicode_slug
- .. versionadded:: 1.9
-
A :class:`RegexValidator` instance that ensures a value consists of only
Unicode letters, numbers, underscores, or hyphens.
@@ -228,8 +226,6 @@ to, or in lieu of custom ``field.clean()`` methods.
.. function:: int_list_validator(sep=',', message=None, code='invalid', allow_negative=False)
- .. versionadded:: 1.9
-
Returns a :class:`RegexValidator` instance that ensures a string consists
of integers separated by ``sep``. It allows negative integers when
``allow_negative`` is ``True``.
@@ -275,8 +271,6 @@ to, or in lieu of custom ``field.clean()`` methods.
.. class:: DecimalValidator(max_digits, decimal_places)
- .. versionadded:: 1.9
-
Raises :exc:`~django.core.exceptions.ValidationError` with the following
codes:
diff --git a/docs/ref/views.txt b/docs/ref/views.txt
index 61d226dc77..2b3568114c 100644
--- a/docs/ref/views.txt
+++ b/docs/ref/views.txt
@@ -87,12 +87,6 @@ Three things to note about 404 views:
your 404 view will never be used, and your URLconf will be displayed
instead, with some debug information.
-.. versionchanged:: 1.9
-
- The signature of ``page_not_found()`` changed. The function now accepts a
- second parameter, the exception that triggered the error. A useful
- representation of the exception is also passed in the template context.
-
.. versionchanged:: 1.10
Passing a nonexistent ``template_name`` will raise ``TemplateDoesNotExist``.
@@ -149,13 +143,6 @@ view you can use code like this::
raise PermissionDenied
# ...
-.. versionchanged:: 1.9
-
- The signature of ``permission_denied()`` changed in Django 1.9. The function
- now accepts a second parameter, the exception that triggered the error. The
- unicode representation of the exception is also passed in the template
- context.
-
.. versionchanged:: 1.10
Passing a nonexistent ``template_name`` will raise ``TemplateDoesNotExist``.
@@ -181,11 +168,6 @@ filesystem paths.
``bad_request`` views are also only used when :setting:`DEBUG` is ``False``.
-.. versionchanged:: 1.9
-
- The signature of ``bad_request()`` changed in Django 1.9. The function
- now accepts a second parameter, the exception that triggered the error.
-
.. versionchanged:: 1.10
Passing a nonexistent ``template_name`` will raise ``TemplateDoesNotExist``.
diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt
index 8dd938e59a..104c7a261b 100644
--- a/docs/topics/auth/customizing.txt
+++ b/docs/topics/auth/customizing.txt
@@ -595,13 +595,9 @@ password resets. You must then provide some key implementation details:
.. admonition:: Importing ``AbstractBaseUser``
- .. versionadded:: 1.9
-
``AbstractBaseUser`` and ``BaseUserManager`` are importable from
``django.contrib.auth.base_user`` so that they can be imported without
- including ``django.contrib.auth`` in :setting:`INSTALLED_APPS` (this
- raised a deprecation warning in older versions and is no longer
- supported in Django 1.9).
+ including ``django.contrib.auth`` in :setting:`INSTALLED_APPS`.
The following attributes and methods are available on any subclass of
:class:`~django.contrib.auth.models.AbstractBaseUser`:
diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt
index 7e6794a97b..1a2df1c083 100644
--- a/docs/topics/auth/default.txt
+++ b/docs/topics/auth/default.txt
@@ -532,8 +532,6 @@ inheritance list.
.. class:: LoginRequiredMixin
- .. versionadded:: 1.9
-
If a view is using this mixin, all requests by non-authenticated users will
be redirected to the login page or shown an HTTP 403 Forbidden error,
depending on the
@@ -621,8 +619,6 @@ redirects to the login page::
.. class:: UserPassesTestMixin
- .. versionadded:: 1.9
-
When using :doc:`class-based views </topics/class-based-views/index>`, you
can use the ``UserPassesTestMixin`` to do this.
@@ -718,11 +714,6 @@ The ``permission_required`` decorator
def my_view(request):
...
- .. versionchanged:: 1.9
-
- In older versions, the ``permission`` parameter only worked with
- strings, lists, and tuples instead of strings and any iterable.
-
.. currentmodule:: django.contrib.auth.mixins
The ``PermissionRequiredMixin`` mixin
@@ -733,8 +724,6 @@ To apply permission checks to :doc:`class-based views
.. class:: PermissionRequiredMixin
- .. versionadded:: 1.9
-
This mixin, just like the ``permission_required``
decorator, checks whether the user accessing a view has all given
permissions. You should specify the permission (or an iterable of
@@ -775,8 +764,6 @@ user to the login page or issue an HTTP 403 Forbidden response.
.. class:: AccessMixin
- .. versionadded:: 1.9
-
.. attribute:: login_url
Default return value for :meth:`get_login_url`. Defaults to ``None``
@@ -1313,10 +1300,6 @@ implementation details see :ref:`using-the-views`.
The ``current_app`` parameter is deprecated and will be removed in
Django 2.0. Callers should set ``request.current_app`` instead.
- .. versionadded:: 1.9
-
- The ``extra_email_context`` parameter was added.
-
**Template context:**
* ``form``: The form (see ``password_reset_form`` above) for resetting
diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt
index 578d917cf4..3736f16ec6 100644
--- a/docs/topics/auth/passwords.txt
+++ b/docs/topics/auth/passwords.txt
@@ -258,10 +258,6 @@ request for a nonexistent user (which runs the default hasher). You may be able
to mitigate this by :ref:`upgrading older password hashes
<wrapping-password-hashers>`.
-.. versionchanged:: 1.9
-
- Passwords updates when changing the number of bcrypt rounds was added.
-
.. _wrapping-password-hashers:
Password upgrading without requiring a login
@@ -392,8 +388,6 @@ The corresponding algorithm names are:
Writing your own hasher
-----------------------
-.. versionadded:: 1.9.3
-
If you write your own password hasher that contains a work factor such as a
number of iterations, you should implement a
``harden_runtime(self, password, encoded)`` method to bridge the runtime gap
@@ -450,8 +444,6 @@ Password validation
.. module:: django.contrib.auth.password_validation
-.. versionadded:: 1.9
-
Users often choose poor passwords. To help mitigate this problem, Django
offers pluggable password validation. You can configure multiple password
validators at the same time. A few validators are included in Django, but it's
diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt
index d955b853b4..bb43dd31db 100644
--- a/docs/topics/cache.txt
+++ b/docs/topics/cache.txt
@@ -804,10 +804,6 @@ You can also pass any callable as a *default* value::
>>> cache.get_or_set('some-timestamp-key', datetime.datetime.now)
datetime.datetime(2014, 12, 11, 0, 15, 49, 457920)
-.. versionchanged:: 1.9
-
- The ``get_or_set()`` method was added.
-
There's also a ``get_many()`` interface that only hits the cache once.
``get_many()`` returns a dictionary with all the keys you asked for that
actually exist in the cache (and haven't expired)::
diff --git a/docs/topics/class-based-views/intro.txt b/docs/topics/class-based-views/intro.txt
index 795209b4c0..cad9f2ed22 100644
--- a/docs/topics/class-based-views/intro.txt
+++ b/docs/topics/class-based-views/intro.txt
@@ -305,11 +305,6 @@ The decorators will process a request in the order they are passed to the
decorator. In the example, ``never_cache()`` will process the request before
``login_required()``.
-.. versionchanged:: 1.9
-
- The ability to use ``method_decorator()`` on a class and the ability for
- it to accept a list or tuple of decorators were added.
-
In this example, every instance of ``ProtectedView`` will have login protection.
.. note::
diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt
index 57408ee224..771c2136dc 100644
--- a/docs/topics/db/queries.txt
+++ b/docs/topics/db/queries.txt
@@ -899,10 +899,6 @@ the number of deletions per object type. Example::
>>> e.delete()
(1, {'weblog.Entry': 1})
-.. versionchanged:: 1.9
-
- The return value describing the number of objects deleted was added.
-
You can also delete objects in bulk. Every
:class:`~django.db.models.query.QuerySet` has a
:meth:`~django.db.models.query.QuerySet.delete` method, which deletes all
@@ -924,10 +920,6 @@ object individually) rather than using the bulk
:meth:`~django.db.models.query.QuerySet.delete` method of a
:class:`~django.db.models.query.QuerySet`.
-.. versionchanged:: 1.9
-
- The return value describing the number of objects deleted was added.
-
When Django deletes an object, by default it emulates the behavior of the SQL
constraint ``ON DELETE CASCADE`` -- in other words, any objects which had
foreign keys pointing at the object to be deleted will be deleted along with
diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt
index 05a1771d74..18b5f9f76d 100644
--- a/docs/topics/db/transactions.txt
+++ b/docs/topics/db/transactions.txt
@@ -254,8 +254,6 @@ something really strange.
Performing actions after commit
===============================
-.. versionadded:: 1.9
-
Sometimes you need to perform an action related to the current database
transaction, but only if the transaction successfully commits. Examples might
include a `Celery`_ task, an email notification, or a cache invalidation.
diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt
index 6a0a43b7c1..b09997f5e7 100644
--- a/docs/topics/forms/formsets.txt
+++ b/docs/topics/forms/formsets.txt
@@ -573,11 +573,6 @@ argument - the index of the form in the formset. The index is ``None`` for the
... kwargs['custom_kwarg'] = index
... return kwargs
-
-.. versionadded:: 1.9
-
- The ``form_kwargs`` argument was added.
-
Using a formset in views and templates
======================================
diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt
index b5ebbc94ce..b550202dcb 100644
--- a/docs/topics/forms/modelforms.txt
+++ b/docs/topics/forms/modelforms.txt
@@ -560,10 +560,6 @@ the field declaratively and setting its ``validators`` parameter::
model = Article
fields = ['pub_date', 'headline', 'content', 'reporter', 'slug']
-.. versionadded:: 1.9
-
- The ``Meta.field_classes`` attribute was added.
-
.. note::
When you explicitly instantiate a form field like this, it is important to
diff --git a/docs/topics/http/decorators.txt b/docs/topics/http/decorators.txt
index 4687188af0..483bd4c97a 100644
--- a/docs/topics/http/decorators.txt
+++ b/docs/topics/http/decorators.txt
@@ -111,8 +111,3 @@ client-side caching.
This decorator adds a ``Cache-Control: max-age=0, no-cache, no-store,
must-revalidate`` header to a response to indicate that a page should never
be cached.
-
- .. versionchanged:: 1.9
-
- Before Django 1.9, ``Cache-Control: max-age=0`` was sent. This didn't
- reliably prevent caching in all browsers.
diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt
index 1a948397ae..e819374e51 100644
--- a/docs/topics/http/sessions.txt
+++ b/docs/topics/http/sessions.txt
@@ -702,8 +702,6 @@ the next section for details).
Extending database-backed session engines
=========================================
-.. versionadded:: 1.9
-
Creating a custom database-backed session engine built upon those included in
Django (namely ``db`` and ``cached_db``) may be done by inheriting
:class:`~base_session.AbstractBaseSession` and either ``SessionStore`` class.
@@ -714,7 +712,6 @@ including ``django.contrib.sessions`` in :setting:`INSTALLED_APPS`.
.. class:: base_session.AbstractBaseSession
- .. versionadded:: 1.9
The abstract base session model.
@@ -751,8 +748,6 @@ You can also customize the model manager by subclassing
.. class:: base_session.BaseSessionManager
- .. versionadded:: 1.9
-
.. method:: encode(session_dict)
Returns the given session dictionary serialized and encoded as a string.
@@ -773,14 +768,10 @@ and properties described below:
.. classmethod:: get_model_class()
- .. versionadded:: 1.9
-
Override this method to return a custom session model if you need one.
.. method:: create_model_instance(data)
- .. versionadded:: 1.9
-
Returns a new instance of the session model object, which represents
the current session state.
@@ -793,8 +784,6 @@ and properties described below:
.. attribute:: cache_key_prefix
- .. versionadded:: 1.9
-
A prefix added to a session key to build a cache key string.
Example
diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt
index ae5b714726..f6a83bffa7 100644
--- a/docs/topics/http/urls.txt
+++ b/docs/topics/http/urls.txt
@@ -679,12 +679,6 @@ the fully qualified name into parts and then tries the following lookup:
setting the current application on the :attr:`request.current_app
<django.http.HttpRequest.current_app>` attribute.
- .. versionchanged:: 1.9
-
- Previously, the :ttag:`url` template tag did not use the namespace of the
- currently resolved view and you had to set the ``current_app`` attribute
- on the request.
-
3. If there is no current application. Django looks for a default
application instance. The default application instance is the instance
that has an :term:`instance namespace` matching the :term:`application
@@ -831,11 +825,3 @@ The instance namespace can be specified using the ``namespace`` argument to
:func:`~django.conf.urls.include`. If the instance namespace is not specified,
it will default to the included URLconf's application namespace. This means
it will also be the default instance for that namespace.
-
-.. versionchanged:: 1.9
-
- In previous versions, you had to specify both the application namespace
- and the instance namespace in a single place, either by passing them as
- parameters to :func:`~django.conf.urls.include` or by including a 3-tuple
- containing
- ``(<list of url() instances>, <application namespace>, <instance namespace>)``.
diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt
index 3f13021bc8..b0d63184e4 100644
--- a/docs/topics/i18n/translation.txt
+++ b/docs/topics/i18n/translation.txt
@@ -700,10 +700,6 @@ In practice you'll use this to get a string you can use in multiple places in a
template or so you can use the output as an argument for other template tags or
filters.
-.. versionchanged:: 1.9
-
- The ``asvar`` syntax was added.
-
``{% blocktrans %}`` also supports :ref:`contextual
markers<contextual-markers>` using the ``context`` keyword:
@@ -890,10 +886,6 @@ You can then access the information::
Bi-directional: {{ lang.bidi }}
Name in the active language: {{ lang.name_translated }}
-.. versionadded:: 1.9
-
- The ``name_translated`` attribute was added.
-
.. templatetag:: get_language_info_list
``get_language_info_list``
@@ -934,12 +926,6 @@ There are also simple filters available for convenience:
* ``{{ LANGUAGE_CODE|language_bidi }}`` (False)
* ``{{ LANGUAGE_CODE|language_name_translated }}`` ("německy", when active language is Czech)
-.. versionadded:: 1.9
-
- The ``language_name_translated`` filter was added.
-
-.. _Django templates: ../templates_python/
-
Internationalization: in JavaScript code
========================================
@@ -1094,11 +1080,6 @@ If you use more than one ``javascript_catalog`` on a site and some of them
define the same strings, the strings in the catalog that was loaded last take
precedence.
-.. versionchanged:: 1.9
-
- Before Django 1.9, the catalogs completely overwrote each other and you
- could only use one at a time.
-
The JavaScript translations found in the paths listed in the
:setting:`LOCALE_PATHS` setting are also always included. To keep consistency
with the translations lookup order algorithm used for Python and templates, the
@@ -1304,8 +1285,6 @@ The ``JSONCatalog`` view
The ``json_catalog`` view
-------------------------
-.. versionadded:: 1.9
-
.. function:: json_catalog(request, domain='djangojs', packages=None)
.. deprecated:: 1.10
@@ -1769,11 +1748,6 @@ which you ran :djadmin:`django-admin makemessages <makemessages>`, run
That's it. Your translations are ready for use.
-.. versionchanged:: 1.9
-
- ``compilemessages`` now matches the operation of :djadmin:`makemessages`,
- scanning the project tree for ``.po`` files to compile.
-
.. admonition:: Working on Windows?
If you're using Windows and need to install the GNU gettext utilities so
diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt
index c0a6b17f63..6388018ff5 100644
--- a/docs/topics/logging.txt
+++ b/docs/topics/logging.txt
@@ -292,11 +292,6 @@ verbose as it includes all database queries::
},
}
-.. versionchanged:: 1.9
-
- Django's default logging configuration changed. See :ref:`the release notes
- <default-logging-changes-19>` for a description of the changes.
-
Finally, here's an example of a fairly complex logging setup::
LOGGING = {
@@ -504,8 +499,6 @@ Messages to this logger have the following extra context:
``django.template``
~~~~~~~~~~~~~~~~~~~
-.. versionadded:: 1.9
-
Log messages related to the rendering of templates.
* Missing context variables are logged as ``DEBUG`` messages.
@@ -753,10 +746,5 @@ Independent of the value of :setting:`DEBUG`:
* The :ref:`django-server-logger` logger sends all messages at the ``INFO``
level or higher to the console.
-.. versionchanged:: 1.9
-
- Django's default logging configuration changed. See :ref:`the release notes
- <default-logging-changes-19>` for a description of the changes.
-
See also :ref:`Configuring logging <configuring-logging>` to learn how you can
complement or replace this default logging configuration.
diff --git a/docs/topics/migrations.txt b/docs/topics/migrations.txt
index e4a69c3d16..9f3635dd4c 100644
--- a/docs/topics/migrations.txt
+++ b/docs/topics/migrations.txt
@@ -279,8 +279,6 @@ Initial migrations
.. attribute:: Migration.initial
-.. versionadded:: 1.9
-
The "initial migrations" for an app are the migrations that create the first
version of that app's tables. Usually an app will have just one initial
migration, but in some cases of complex model interdependencies it may have two
@@ -656,11 +654,6 @@ Django can serialize the following:
- Any class reference (must be in module's top-level scope)
- Anything with a custom ``deconstruct()`` method (:ref:`see below <custom-deconstruct-method>`)
-.. versionchanged:: 1.9
-
- Serialization support for ``functools.partial`` and ``LazyObject``
- instances was added.
-
.. versionchanged:: 1.10
Serialization support for ``enum.Enum`` was added.
diff --git a/docs/topics/pagination.txt b/docs/topics/pagination.txt
index 85612b734e..d2737fd522 100644
--- a/docs/topics/pagination.txt
+++ b/docs/topics/pagination.txt
@@ -206,11 +206,6 @@ Attributes
A 1-based range iterator of page numbers, e.g. yielding ``[1, 2, 3, 4]``.
- .. versionchanged:: 1.9
-
- In older versions, ``page_range`` returned a list instead of an
- iterator.
-
``InvalidPage`` exceptions
==========================
diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt
index 4793abfa1e..220abcd095 100644
--- a/docs/topics/serialization.txt
+++ b/docs/topics/serialization.txt
@@ -216,8 +216,6 @@ This example links the given user with the permission models with PKs 46 and 47.
.. admonition:: Control characters
- .. versionchanged:: 1.9
-
If the content to be serialized contains control characters that are not
accepted in the XML 1.0 standard, the serialization will fail with a
:exc:`ValueError` exception. Read also the W3C's explanation of `HTML,
diff --git a/docs/topics/templates.txt b/docs/topics/templates.txt
index 197ffc1111..8f21f936ab 100644
--- a/docs/topics/templates.txt
+++ b/docs/topics/templates.txt
@@ -142,10 +142,6 @@ If loading a template fails, the following two exceptions, defined in
functions, such as :func:`~django.template.loader.get_template`, that
try to load a given template from multiple engines.
- .. versionadded:: 1.9
-
- The ``backend``, ``tried``, and ``chain`` arguments were added.
-
.. exception:: TemplateSyntaxError(msg)
This exception is raised when a template was found but contains errors.
@@ -374,10 +370,6 @@ applications. This generic name was kept for backwards-compatibility.
Tags and filters from built-in libraries can be used without first calling
the :ttag:`{% load %} <load>` tag.
-.. versionadded:: 1.9
-
- The ``libraries`` and ``builtins`` arguments were added.
-
.. module:: django.template.backends.jinja2
.. class:: Jinja2
@@ -515,10 +507,6 @@ See `DEP 182`_ for more information.
Debug integration for custom engines
------------------------------------
-.. versionadded:: 1.9
-
- Debug page integration for non-Django template engines was added.
-
The Django debug page has hooks to provide detailed information when a template
error arises. Custom template engines can use these hooks to enhance the
traceback information that appears to users. The following hooks are available:
diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt
index eca477bdd9..4d6160c3fb 100644
--- a/docs/topics/testing/overview.txt
+++ b/docs/topics/testing/overview.txt
@@ -252,8 +252,6 @@ The initial serialization is usually very quick, but if you wish to exclude
some apps from this process (and speed up test runs slightly), you may add
those apps to :setting:`TEST_NON_SERIALIZED_APPS`.
-.. versionchanged:: 1.9
-
To prevent serialized data from being loaded twice, setting
``serialized_rollback=True`` disables the
:data:`~django.db.models.signals.post_migrate` signal when flushing the test
diff --git a/docs/topics/testing/tools.txt b/docs/topics/testing/tools.txt
index d2ef214c36..6663ccad8f 100644
--- a/docs/topics/testing/tools.txt
+++ b/docs/topics/testing/tools.txt
@@ -379,8 +379,6 @@ Use the ``django.test.Client`` class to make requests.
.. method:: Client.force_login(user, backend=None)
- .. versionadded:: 1.9
-
If your site uses Django's :doc:`authentication
system</topics/auth/index>`, you can use the ``force_login()`` method
to simulate the effect of a user logging into the site. Use this method
@@ -461,8 +459,6 @@ Specifically, a ``Response`` object has the following attributes:
.. method:: json(**kwargs)
- .. versionadded:: 1.9
-
The body of the response, parsed as JSON. Extra keyword arguments are
passed to :func:`json.loads`. For example::
@@ -658,8 +654,6 @@ If your tests make any database queries, use subclasses
.. attribute:: SimpleTestCase.allow_database_queries
- .. versionadded:: 1.9
-
:class:`~SimpleTestCase` disallows database queries by default. This
helps to avoid executing write queries which will affect other tests
since each ``SimpleTestCase`` test isn't run in a transaction. If you
@@ -824,11 +818,6 @@ By default the live server listens on ``localhost`` and picks the first
available port in the ``8081-8179`` range. Its full URL can be accessed with
``self.live_server_url`` during the tests.
-.. versionchanged:: 1.9
-
- In earlier versions, the live server's default address was always
- ``'localhost:8081'``.
-
If you'd like to select another address, you may pass a different one using the
:option:`test --liveserver` option, for example:
@@ -836,12 +825,6 @@ If you'd like to select another address, you may pass a different one using the
$ ./manage.py test --liveserver=localhost:8082
-.. versionchanged:: 1.9
-
- In older versions ``live_server_url`` could only be accessed from an
- instance. It now is a class property and can be accessed from class methods
- like ``setUpClass()``.
-
Another way of changing the default server address is by setting the
`DJANGO_LIVE_TEST_SERVER_ADDRESS` environment variable somewhere in your
code (for example, in a :ref:`custom test runner<topics-testing-test_runner>`)::