summaryrefslogtreecommitdiff
path: root/docs/ref
diff options
context:
space:
mode:
authorCarlton Gibson <carlton.gibson@noumenal.es>2022-05-10 15:07:11 +0200
committerCarlton Gibson <carlton@noumenal.es>2022-05-17 14:22:06 +0200
commitca1c3151c3df48f1fb2cd17df9cfe93800254665 (patch)
tree81a02e0cfbb4f67af2f2406b8e8ac5ce20f824c4 /docs/ref
parentd10e569ea5786d3a5babac760c4facb1ff029a68 (diff)
Removed versionadded/changed annotations for 4.0.
Diffstat (limited to 'docs/ref')
-rw-r--r--docs/ref/checks.txt6
-rw-r--r--docs/ref/class-based-views/generic-editing.txt7
-rw-r--r--docs/ref/contrib/admin/admindocs.txt4
-rw-r--r--docs/ref/contrib/admin/index.txt16
-rw-r--r--docs/ref/contrib/gis/admin.txt2
-rw-r--r--docs/ref/contrib/gis/gdal.txt6
-rw-r--r--docs/ref/contrib/postgres/expressions.txt2
-rw-r--r--docs/ref/contrib/postgres/indexes.txt4
-rw-r--r--docs/ref/contrib/postgres/lookups.txt2
-rw-r--r--docs/ref/contrib/postgres/operations.txt2
-rw-r--r--docs/ref/contrib/postgres/search.txt4
-rw-r--r--docs/ref/contrib/staticfiles.txt10
-rw-r--r--docs/ref/csrf.txt4
-rw-r--r--docs/ref/databases.txt5
-rw-r--r--docs/ref/django-admin.txt18
-rw-r--r--docs/ref/forms/api.txt28
-rw-r--r--docs/ref/forms/fields.txt5
-rw-r--r--docs/ref/forms/formsets.txt4
-rw-r--r--docs/ref/forms/models.txt8
-rw-r--r--docs/ref/forms/renderers.txt8
-rw-r--r--docs/ref/forms/widgets.txt10
-rw-r--r--docs/ref/logging.txt4
-rw-r--r--docs/ref/middleware.txt2
-rw-r--r--docs/ref/models/conditional-expressions.txt4
-rw-r--r--docs/ref/models/constraints.txt2
-rw-r--r--docs/ref/models/database-functions.txt4
-rw-r--r--docs/ref/models/expressions.txt8
-rw-r--r--docs/ref/models/lookups.txt5
-rw-r--r--docs/ref/models/querysets.txt16
-rw-r--r--docs/ref/settings.txt19
-rw-r--r--docs/ref/signals.txt4
-rw-r--r--docs/ref/templates/builtins.txt7
32 files changed, 0 insertions, 230 deletions
diff --git a/docs/ref/checks.txt b/docs/ref/checks.txt
index 233d999fe7..92278db659 100644
--- a/docs/ref/checks.txt
+++ b/docs/ref/checks.txt
@@ -94,10 +94,6 @@ Django's system checks are organized using the following tags:
Some checks may be registered with multiple tags.
-.. versionchanged:: 4.0
-
- The ``files`` tag was added.
-
Core system checks
==================
@@ -157,8 +153,6 @@ If you're using MySQL or MariaDB, the following checks will be performed:
Managing files
--------------
-.. versionadded:: 4.0
-
The following checks verify your setup for :doc:`/topics/files`:
* **files.E001**: The :setting:`FILE_UPLOAD_TEMP_DIR` setting refers to the
diff --git a/docs/ref/class-based-views/generic-editing.txt b/docs/ref/class-based-views/generic-editing.txt
index cb03b531cc..84a8a4dda0 100644
--- a/docs/ref/class-based-views/generic-editing.txt
+++ b/docs/ref/class-based-views/generic-editing.txt
@@ -285,8 +285,6 @@ editing content:
.. attribute:: form_class
- .. versionadded:: 4.0
-
Inherited from :class:`~django.views.generic.edit.BaseDeleteView`. The
form class that will be used to confirm the request. By default
:class:`django.forms.Form`, resulting in an empty form that is always
@@ -336,8 +334,3 @@ editing content:
* :class:`django.views.generic.edit.DeletionMixin`
* :class:`django.views.generic.edit.FormMixin`
* :class:`django.views.generic.detail.BaseDetailView`
-
- .. versionchanged:: 4.0
-
- In older versions, ``BaseDeleteView`` does not inherit from
- ``FormMixin``.
diff --git a/docs/ref/contrib/admin/admindocs.txt b/docs/ref/contrib/admin/admindocs.txt
index 38c67ea6bd..5a95e101ed 100644
--- a/docs/ref/contrib/admin/admindocs.txt
+++ b/docs/ref/contrib/admin/admindocs.txt
@@ -55,10 +55,6 @@ system along with all the fields, properties, 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:: 4.0
-
- Older versions don't display model cached properties.
-
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 964d6eeccf..74af773dec 100644
--- a/docs/ref/contrib/admin/index.txt
+++ b/docs/ref/contrib/admin/index.txt
@@ -1203,8 +1203,6 @@ subclass::
.. attribute:: ModelAdmin.search_help_text
- .. versionadded:: 4.0
-
Set ``search_help_text`` to specify a descriptive text for the search box
which will be displayed below it.
@@ -1938,8 +1936,6 @@ templates used by the :class:`ModelAdmin` views:
.. method:: ModelAdmin.get_formset_kwargs(request, obj, inline, prefix)
- .. versionadded:: 4.0
-
A hook for customizing the keyword arguments passed to the constructor of a
formset. For example, to pass ``request`` to formset forms::
@@ -2091,10 +2087,6 @@ forms or widgets depending on ``django.jQuery`` must specify
``js=['admin/js/jquery.init.js', …]`` when :ref:`declaring form media assets
<assets-as-a-static-definition>`.
-.. versionchanged:: 4.0
-
- jQuery was upgraded from 3.5.1 to 3.6.0.
-
The :class:`ModelAdmin` class requires jQuery by default, so there is no need
to add jQuery to your ``ModelAdmin``’s list of media resources unless you have
a specific need. For example, if you require the jQuery library to be in the
@@ -2310,10 +2302,6 @@ The ``InlineModelAdmin`` class adds or customizes:
:attr:`.InlineModelAdmin.verbose_name` is defined, Django will use
:attr:`.InlineModelAdmin.verbose_name` + ``'s'``.
- .. versionchanged:: 4.0
-
- The fallback to :attr:`.InlineModelAdmin.verbose_name` was added.
-
.. attribute:: InlineModelAdmin.can_delete
Specifies whether or not inline objects can be deleted in the inline.
@@ -2895,10 +2883,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:: 4.0
-
- The ``model`` variable for each model was added.
-
.. method:: AdminSite.get_app_list(request, app_label=None)
Returns a list of applications from the :doc:`application registry
diff --git a/docs/ref/contrib/gis/admin.txt b/docs/ref/contrib/gis/admin.txt
index ee66e3f2c1..8446291ae0 100644
--- a/docs/ref/contrib/gis/admin.txt
+++ b/docs/ref/contrib/gis/admin.txt
@@ -8,8 +8,6 @@ GeoDjango's admin site
``GISModelAdmin``
=================
-.. versionadded:: 4.0
-
.. class:: GISModelAdmin
.. attribute:: gis_widget
diff --git a/docs/ref/contrib/gis/gdal.txt b/docs/ref/contrib/gis/gdal.txt
index c7174a3a5a..d5dba8677e 100644
--- a/docs/ref/contrib/gis/gdal.txt
+++ b/docs/ref/contrib/gis/gdal.txt
@@ -1160,10 +1160,6 @@ blue.
>>> rst.name # Stored in a random path in the vsimem filesystem.
'/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'
- .. versionchanged:: 4.0
-
- Creating rasters in any GDAL virtual filesystem was allowed.
-
.. attribute:: name
The name of the source which is equivalent to the input file path or the name
@@ -1822,8 +1818,6 @@ Here's how to create a raster and return it as a file in an
Using other Virtual Filesystems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. versionadded:: 4.0
-
Depending on the local build of GDAL other virtual filesystems may be
supported. You can use them by prepending the provided path with the
appropriate ``/vsi*/`` prefix. See the `GDAL Virtual Filesystems
diff --git a/docs/ref/contrib/postgres/expressions.txt b/docs/ref/contrib/postgres/expressions.txt
index 79590c2393..05d5096fee 100644
--- a/docs/ref/contrib/postgres/expressions.txt
+++ b/docs/ref/contrib/postgres/expressions.txt
@@ -13,8 +13,6 @@ These expressions are available from the
.. class:: ArraySubquery(queryset)
-.. versionadded:: 4.0
-
``ArraySubquery`` is a :class:`~django.db.models.Subquery` that uses the
PostgreSQL ``ARRAY`` constructor to build a list of values from the queryset,
which must use :meth:`.QuerySet.values` to return only a single column.
diff --git a/docs/ref/contrib/postgres/indexes.txt b/docs/ref/contrib/postgres/indexes.txt
index 88f55900bc..4e421502a4 100644
--- a/docs/ref/contrib/postgres/indexes.txt
+++ b/docs/ref/contrib/postgres/indexes.txt
@@ -178,10 +178,6 @@ available from the ``django.contrib.postgres.indexes`` module.
creates an exclusion constraint on ``circle`` using ``circle_ops``.
- .. versionchanged:: 4.0
-
- Support for functional unique constraints was added.
-
.. versionchanged:: 4.1
Support for exclusion constraints was added.
diff --git a/docs/ref/contrib/postgres/lookups.txt b/docs/ref/contrib/postgres/lookups.txt
index d9f76318cc..83f21e8dc1 100644
--- a/docs/ref/contrib/postgres/lookups.txt
+++ b/docs/ref/contrib/postgres/lookups.txt
@@ -27,8 +27,6 @@ The ``trigram_similar`` lookup can be used on
.. fieldlookup:: trigram_word_similar
-.. versionadded:: 4.0
-
The ``trigram_word_similar`` lookup allows you to perform trigram word
similarity lookups using a dedicated PostgreSQL extension. It can be
approximately understood as measuring the greatest number of trigrams shared
diff --git a/docs/ref/contrib/postgres/operations.txt b/docs/ref/contrib/postgres/operations.txt
index b63598cb1b..46ba3300ae 100644
--- a/docs/ref/contrib/postgres/operations.txt
+++ b/docs/ref/contrib/postgres/operations.txt
@@ -186,8 +186,6 @@ database.
Adding constraints without enforcing validation
===============================================
-.. versionadded:: 4.0
-
PostgreSQL supports the ``NOT VALID`` option with the ``ADD CONSTRAINT``
statement to add check constraints without enforcing validation on existing
rows. This option is useful if you want to skip the potentially lengthy scan of
diff --git a/docs/ref/contrib/postgres/search.txt b/docs/ref/contrib/postgres/search.txt
index fa369670bb..e36f4028fe 100644
--- a/docs/ref/contrib/postgres/search.txt
+++ b/docs/ref/contrib/postgres/search.txt
@@ -318,8 +318,6 @@ Usage example::
``TrigramWordSimilarity``
-------------------------
-.. versionadded:: 4.0
-
.. class:: TrigramWordSimilarity(string, expression, **extra)
Accepts a string or expression, and a field name or expression. Returns the
@@ -358,8 +356,6 @@ Usage example::
``TrigramWordDistance``
-----------------------
-.. versionadded:: 4.0
-
.. class:: TrigramWordDistance(string, expression, **extra)
Accepts a string or expression, and a field name or expression. Returns the
diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt
index a0b466ad28..152838736c 100644
--- a/docs/ref/contrib/staticfiles.txt
+++ b/docs/ref/contrib/staticfiles.txt
@@ -325,12 +325,6 @@ argument. For example::
manifest_storage = StaticFilesStorage(location=settings.BASE_DIR)
super().__init__(*args, manifest_storage=manifest_storage, **kwargs)
-.. versionchanged:: 4.0
-
- Support for finding paths in JavaScript source map comments was added.
-
- The ``manifest_storage`` argument was added.
-
.. versionchanged:: 4.1
Support for finding paths in CSS source map comments was added.
@@ -397,10 +391,6 @@ hashing algorithm.
Use this mixin with a custom storage to append the MD5 hash of the file's
content to the filename as :class:`~storage.ManifestStaticFilesStorage` does.
-.. versionchanged:: 4.0
-
- The ``manifest_storage`` argument was added.
-
Finders Module
==============
diff --git a/docs/ref/csrf.txt b/docs/ref/csrf.txt
index 360c5a3f47..a4712c29f0 100644
--- a/docs/ref/csrf.txt
+++ b/docs/ref/csrf.txt
@@ -82,10 +82,6 @@ The CSRF protection is based on the following things:
Expanding the accepted referers beyond the current host or cookie domain can
be done with the :setting:`CSRF_TRUSTED_ORIGINS` setting.
-.. versionadded:: 4.0
-
- ``Origin`` checking was added, as described above.
-
.. versionchanged:: 4.1
In older versions, the CSRF cookie value was masked.
diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt
index ca6362a7a6..1d4c14ab96 100644
--- a/docs/ref/databases.txt
+++ b/docs/ref/databases.txt
@@ -160,11 +160,6 @@ password from the `password file`_, you must specify them in the
.. _connection service file: https://www.postgresql.org/docs/current/libpq-pgservice.html
.. _password file: https://www.postgresql.org/docs/current/libpq-pgpass.html
-.. versionchanged:: 4.0
-
- Support for connecting by a service name, and specifying a password file
- was added.
-
.. warning::
Using a service name for testing purposes is not supported. This
diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
index 1b487c1e18..25a1107c55 100644
--- a/docs/ref/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -1027,10 +1027,6 @@ multithreaded by default.
Uses IPv6 for the development server. This changes the default IP address from
``127.0.0.1`` to ``::1``.
-.. versionchanged:: 4.0
-
- Support for the ``--skip-checks`` option was added.
-
Examples of using different ports and addresses
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1326,8 +1322,6 @@ empty list.
.. django-admin-option:: --exclude DIRECTORIES, -x DIRECTORIES
-.. versionadded:: 4.0
-
Specifies which directories in the app template should be excluded, in addition
to ``.git`` and ``__pycache__``. If this option is not provided, directories
named ``__pycache__`` or starting with ``.`` will be excluded.
@@ -1403,8 +1397,6 @@ empty list.
.. django-admin-option:: --exclude DIRECTORIES, -x DIRECTORIES
-.. versionadded:: 4.0
-
Specifies which directories in the project template should be excluded, in
addition to ``.git`` and ``__pycache__``. If this option is not provided,
directories named ``__pycache__`` or starting with ``.`` will be excluded.
@@ -1463,8 +1455,6 @@ before running the test suite.
.. django-admin-option:: --shuffle [SEED]
-.. versionadded:: 4.0
-
Randomizes the order of tests before running them. This can help detect tests
that aren't properly isolated. The test order generated by this option is a
deterministic function of the integer seed given. When no seed is passed, a
@@ -1548,10 +1538,6 @@ don't.
in order to exchange them between processes. See
:ref:`python:pickle-picklable` for details.
-.. versionchanged:: 4.0
-
- Support for the value ``auto`` was added.
-
.. option:: --tag TAGS
Runs only tests :ref:`marked with the specified tags <topics-tagging-tests>`.
@@ -1559,10 +1545,6 @@ May be specified multiple times and combined with :option:`test --exclude-tag`.
Tests that fail to load are always considered matching.
-.. versionchanged:: 4.0
-
- In older versions, tests that failed to load did not match tags.
-
.. option:: --exclude-tag EXCLUDE_TAGS
Excludes tests :ref:`marked with the specified tags <topics-tagging-tests>`.
diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt
index 72937bfa9a..0d526d26aa 100644
--- a/docs/ref/forms/api.txt
+++ b/docs/ref/forms/api.txt
@@ -529,8 +529,6 @@ attributes.
``template_name``
~~~~~~~~~~~~~~~~~
-.. versionadded:: 4.0
-
.. attribute:: Form.template_name
The name of the template rendered if the form is cast into a string, e.g. via
@@ -549,8 +547,6 @@ class.
``render()``
~~~~~~~~~~~~
-.. versionadded:: 4.0
-
.. method:: Form.render(template_name=None, context=None, renderer=None)
The render method is called by ``__str__`` as well as the
@@ -567,8 +563,6 @@ single call.
``get_context()``
~~~~~~~~~~~~~~~~~
-.. versionadded:: 4.0
-
.. method:: Form.get_context()
Return the template context for rendering the form.
@@ -583,8 +577,6 @@ The available context is:
``template_name_label``
~~~~~~~~~~~~~~~~~~~~~~~
-.. versionadded:: 4.0
-
.. attribute:: Form.template_name_label
The template used to render a field's ``<label>``, used when calling
@@ -998,16 +990,12 @@ Customizing the error list format
.. attribute:: renderer
- .. versionadded:: 4.0
-
Specifies the :doc:`renderer <renderers>` to use for ``ErrorList``.
Defaults to ``None`` which means to use the default renderer
specified by the :setting:`FORM_RENDERER` setting.
.. attribute:: template_name
- .. versionadded:: 4.0
-
The name of the template used when calling ``__str__`` or
:meth:`render`. By default this is
``'django/forms/errors/list/default.html'`` which is a proxy for the
@@ -1015,16 +1003,12 @@ Customizing the error list format
.. attribute:: template_name_text
- .. versionadded:: 4.0
-
The name of the template used when calling :meth:`.as_text`. By default
this is ``'django/forms/errors/list/text.html'``. This template renders
the errors as a list of bullet points.
.. attribute:: template_name_ul
- .. versionadded:: 4.0
-
The name of the template used when calling :meth:`.as_ul`. By default
this is ``'django/forms/errors/list/ul.html'``. This template renders
the errors in ``<li>`` tags with a wrapping ``<ul>`` with the CSS
@@ -1032,8 +1016,6 @@ Customizing the error list format
.. method:: get_context()
- .. versionadded:: 4.0
-
Return context for rendering of errors in a template.
The available context is:
@@ -1043,8 +1025,6 @@ Customizing the error list format
.. method:: render(template_name=None, context=None, renderer=None)
- .. versionadded:: 4.0
-
The render method is called by ``__str__`` as well as by the
:meth:`.as_ul` method.
@@ -1069,10 +1049,6 @@ Customizing the error list format
overriding the default template, see also
:ref:`overriding-built-in-form-templates`.
-.. versionchanged:: 4.0
-
- Rendering of :class:`ErrorList` was moved to the template engine.
-
.. deprecated:: 4.0
The ability to return a ``str`` when calling the ``__str__`` method is
@@ -1341,10 +1317,6 @@ Methods of ``BoundField``
overriding the default template, see also
:ref:`overriding-built-in-form-templates`.
- .. versionchanged:: 4.0
-
- The label is now rendered using the template engine.
-
.. versionchanged:: 4.1
The ``tag`` argument was added.
diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt
index 4d0205b4d3..3b59dd3b07 100644
--- a/docs/ref/forms/fields.txt
+++ b/docs/ref/forms/fields.txt
@@ -1350,11 +1350,6 @@ generating choices. See :ref:`iterating-relationship-choices` for details.
def label_from_instance(self, obj):
return "My Object #%i" % obj.id
- .. versionchanged:: 4.0
-
- Support for containing ``%(value)s`` in the ``invalid_choice`` error
- message was added.
-
``ModelMultipleChoiceField``
----------------------------
diff --git a/docs/ref/forms/formsets.txt b/docs/ref/forms/formsets.txt
index 97be3fd03e..5010d32681 100644
--- a/docs/ref/forms/formsets.txt
+++ b/docs/ref/forms/formsets.txt
@@ -16,7 +16,3 @@ Formset API reference. For introductory material about formsets, see the
Returns a ``FormSet`` class for the given ``form`` class.
See :doc:`formsets </topics/forms/formsets>` for example usage.
-
- .. versionchanged:: 4.0
-
- The ``renderer`` argument was added.
diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt
index 9b0dbc964d..b1cc131d79 100644
--- a/docs/ref/forms/models.txt
+++ b/docs/ref/forms/models.txt
@@ -72,10 +72,6 @@ Model Form API reference. For introductory material about model forms, see the
See :ref:`model-formsets` for example usage.
- .. versionchanged:: 4.0
-
- The ``renderer`` argument was added.
-
.. versionchanged:: 4.1
The ``edit_only`` argument was added.
@@ -94,10 +90,6 @@ Model Form API reference. For introductory material about model forms, see the
See :ref:`inline-formsets` for example usage.
- .. versionchanged:: 4.0
-
- The ``renderer`` argument was added.
-
.. versionchanged:: 4.1
The ``edit_only`` argument was added.
diff --git a/docs/ref/forms/renderers.txt b/docs/ref/forms/renderers.txt
index f11b23ab12..e30dfe3947 100644
--- a/docs/ref/forms/renderers.txt
+++ b/docs/ref/forms/renderers.txt
@@ -182,8 +182,6 @@ needs can be located.
Context available in formset templates
======================================
-.. versionadded:: 4.0
-
Formset templates receive a context from :meth:`.BaseFormSet.get_context`. By
default, formsets receive a dictionary with the following values:
@@ -192,8 +190,6 @@ default, formsets receive a dictionary with the following values:
Context available in form templates
===================================
-.. versionadded:: 4.0
-
Form templates receive a context from :meth:`.Form.get_context`. By default,
forms receive a dictionary with the following values:
@@ -224,8 +220,6 @@ defines ``widget['subwidgets']`` for looping purposes.
Overriding built-in formset templates
=====================================
-.. versionadded:: 4.0
-
:attr:`.BaseFormSet.template_name`
To override formset templates, you must use the :class:`TemplatesSetting`
@@ -237,8 +231,6 @@ renderer. Then overriding widget templates works :doc:`the same as
Overriding built-in form templates
==================================
-.. versionadded:: 4.0
-
:attr:`.Form.template_name`
To override form templates, you must use the :class:`TemplatesSetting`
diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt
index e0f175af79..e29a54c876 100644
--- a/docs/ref/forms/widgets.txt
+++ b/docs/ref/forms/widgets.txt
@@ -725,11 +725,6 @@ that specifies the template used to render each choice. For example, for the
...
</div>
- .. versionchanged:: 4.0
-
- So they are announced more concisely by screen readers, radio buttons
- were changed to render in ``<div>`` tags.
-
For more granular control over the generated markup, you can loop over the
radio buttons in the template. Assuming a form ``myform`` with a field
``beatles`` that uses a ``RadioSelect`` as its widget:
@@ -836,11 +831,6 @@ that specifies the template used to render each choice. For example, for the
The outer ``<div>`` container receives the ``id`` attribute of the widget,
if defined, or :attr:`BoundField.auto_id` otherwise.
- .. versionchanged:: 4.0
-
- So they are announced more concisely by screen readers, checkboxes were
- changed to render in ``<div>`` tags.
-
Like :class:`RadioSelect`, you can loop over the individual checkboxes for the
widget's choices. Unlike :class:`RadioSelect`, the checkboxes won't include the
``required`` HTML attribute if the field is required because browser validation
diff --git a/docs/ref/logging.txt b/docs/ref/logging.txt
index 6b8e12ef46..ba443a0a36 100644
--- a/docs/ref/logging.txt
+++ b/docs/ref/logging.txt
@@ -200,10 +200,6 @@ This logging does not include framework-level initialization (e.g.
``COMMIT``, and ``ROLLBACK``). Turn on query logging in your database if you
wish to view all database queries.
-.. versionchanged:: 4.0
-
- The database ``alias`` was added to log messages.
-
.. _django-security-logger:
``django.security.*``
diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt
index 6e7a17661c..2ddcbae7fe 100644
--- a/docs/ref/middleware.txt
+++ b/docs/ref/middleware.txt
@@ -355,8 +355,6 @@ this setting are:
Cross-Origin Opener Policy
~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. versionadded:: 4.0
-
Some browsers have the ability to isolate top-level windows from other
documents by putting them in a separate browsing context group based on the
value of the `Cross-Origin Opener Policy`__ (COOP) header. If a document that
diff --git a/docs/ref/models/conditional-expressions.txt b/docs/ref/models/conditional-expressions.txt
index 53654b50e5..a58a938e09 100644
--- a/docs/ref/models/conditional-expressions.txt
+++ b/docs/ref/models/conditional-expressions.txt
@@ -48,10 +48,6 @@ objects that have an ``output_field`` that is a
:class:`~django.db.models.BooleanField`. The result is provided using the
``then`` keyword.
-.. versionchanged:: 4.0
-
- Support for lookup expressions was added.
-
Some examples::
>>> from django.db.models import F, Q, When
diff --git a/docs/ref/models/constraints.txt b/docs/ref/models/constraints.txt
index 9b1e110f85..d0a9a017dc 100644
--- a/docs/ref/models/constraints.txt
+++ b/docs/ref/models/constraints.txt
@@ -118,8 +118,6 @@ ensures the age field is never less than 18.
.. attribute:: UniqueConstraint.expressions
-.. versionadded:: 4.0
-
Positional argument ``*expressions`` allows creating functional unique
constraints on expressions and database functions.
diff --git a/docs/ref/models/database-functions.txt b/docs/ref/models/database-functions.txt
index acca4a7c68..e9a0736b5b 100644
--- a/docs/ref/models/database-functions.txt
+++ b/docs/ref/models/database-functions.txt
@@ -1173,10 +1173,6 @@ It can also be registered as a transform. For example::
>>> # Get vectors whose round() is less than 20
>>> vectors = Vector.objects.filter(x__round__lt=20, y__round__lt=20)
-.. versionchanged:: 4.0
-
- The ``precision`` argument was added.
-
``Sign``
--------
diff --git a/docs/ref/models/expressions.txt b/docs/ref/models/expressions.txt
index da533ba5c3..967592cbaa 100644
--- a/docs/ref/models/expressions.txt
+++ b/docs/ref/models/expressions.txt
@@ -416,8 +416,6 @@ The ``Aggregate`` API is as follows:
.. attribute:: empty_result_set_value
- .. versionadded:: 4.0
-
Defaults to ``None`` since most aggregate functions result in ``NULL``
when applied to an empty result set.
@@ -455,10 +453,6 @@ grouping) contains no entries.
The ``**extra`` kwargs are ``key=value`` pairs that can be interpolated
into the ``template`` attribute.
-.. versionchanged:: 4.0
-
- The ``default`` argument was added.
-
Creating your own Aggregate Functions
-------------------------------------
@@ -963,8 +957,6 @@ calling the appropriate methods on the wrapped expression.
.. attribute:: empty_result_set_value
- .. versionadded:: 4.0
-
Tells Django which value should be returned when the expression is used
to apply a function over an empty result set. Defaults to
:py:data:`NotImplemented` which forces the expression to be computed on
diff --git a/docs/ref/models/lookups.txt b/docs/ref/models/lookups.txt
index f4fa0f899d..a03cede22f 100644
--- a/docs/ref/models/lookups.txt
+++ b/docs/ref/models/lookups.txt
@@ -218,8 +218,3 @@ following methods:
.. method:: process_rhs(compiler, connection)
Behaves the same way as :meth:`process_lhs`, for the right-hand side.
-
- .. versionchanged:: 4.0
-
- Support for using lookups in ``QuerySet`` annotations, aggregations,
- and directly in filters was added.
diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt
index a9da1dcf7e..47eefdb579 100644
--- a/docs/ref/models/querysets.txt
+++ b/docs/ref/models/querysets.txt
@@ -1869,10 +1869,6 @@ raised if ``select_for_update()`` is used in autocommit mode.
PostgreSQL doesn't support ``select_for_update()`` with
:class:`~django.db.models.expressions.Window` expressions.
-.. versionchanged:: 4.0
-
- The ``skip_locked`` argument was allowed on MariaDB 10.6+.
-
``raw()``
~~~~~~~~~
@@ -2331,10 +2327,6 @@ support it).
.. _MySQL documentation: https://dev.mysql.com/doc/refman/en/sql-mode.html#ignore-strict-comparison
.. _MariaDB documentation: https://mariadb.com/kb/en/ignore/
-.. versionchanged:: 4.0
-
- Support for the fetching primary key attributes on SQLite 3.35+ was added.
-
.. versionchanged:: 4.1
The ``update_conflicts``, ``update_fields``, and ``unique_fields``
@@ -2364,10 +2356,6 @@ updated::
>>> Entry.objects.bulk_update(objs, ['headline'])
2
-.. versionchanged:: 4.0
-
- The return value of the number of objects updated was added.
-
:meth:`.QuerySet.update` is used to save the changes, so this is more efficient
than iterating through the list of models and calling ``save()`` on each of
them, but it has a few caveats:
@@ -2778,8 +2766,6 @@ results and then checks if any were returned.
*Asynchronous version*: ``acontains()``
-.. versionadded:: 4.0
-
Returns ``True`` if the :class:`.QuerySet` contains ``obj``, and ``False`` if
not. This tries to perform the query in the simplest and fastest way possible.
@@ -3833,8 +3819,6 @@ example usage.
``default``
~~~~~~~~~~~
-.. versionadded:: 4.0
-
An optional argument that allows specifying a value to use as a default value
when the queryset (or grouping) contains no entries.
diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt
index d91e0d5ef5..b451ec0169 100644
--- a/docs/ref/settings.txt
+++ b/docs/ref/settings.txt
@@ -159,10 +159,6 @@ You can use a cache backend that doesn't ship with Django by setting
:setting:`BACKEND <CACHES-BACKEND>` to a fully-qualified path of a cache
backend class (i.e. ``mypackage.backends.whatever.WhateverCache``).
-.. versionchanged:: 4.0
-
- The ``RedisCache`` backend was added.
-
.. setting:: CACHES-KEY_FUNCTION
``KEY_FUNCTION``
@@ -494,13 +490,6 @@ The setting also supports subdomains, so you could add
``'https://*.example.com'``, for example, to allow access from all subdomains
of ``example.com``.
-.. versionchanged:: 4.0
-
- The values in older versions must only include the hostname (possibly with
- a leading dot) and not the scheme or an asterisk.
-
- Also, ``Origin`` header checking isn't performed in older versions.
-
.. setting:: DATABASES
``DATABASES``
@@ -2355,8 +2344,6 @@ already have it.
``SECURE_CROSS_ORIGIN_OPENER_POLICY``
-------------------------------------
-.. versionadded:: 4.0
-
Default: ``'same-origin'``
Unless set to ``None``, the
@@ -2841,8 +2828,6 @@ the correct environment.
``USE_DEPRECATED_PYTZ``
-----------------------
-.. versionadded:: 4.0
-
Default: ``False``
A boolean that specifies whether to use ``pytz``, rather than :mod:`zoneinfo`,
@@ -2885,10 +2870,6 @@ dates using the format of the current locale.
See also :setting:`LANGUAGE_CODE`, :setting:`USE_I18N` and :setting:`USE_TZ`.
-.. versionchanged:: 4.0
-
- In older versions, the default value is ``False``.
-
.. deprecated:: 4.0
This setting is deprecated. Starting with Django 5.0, localized formatting
diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt
index 5180826e68..48cc3c2d8f 100644
--- a/docs/ref/signals.txt
+++ b/docs/ref/signals.txt
@@ -437,8 +437,6 @@ Arguments sent with this signal:
superuser when ``interactive`` is ``True``.
``stdout``
- .. versionadded:: 4.0
-
A stream-like object where verbose output should be redirected.
``using``
@@ -496,8 +494,6 @@ Arguments sent with this signal:
superuser when ``interactive`` is ``True``.
``stdout``
- .. versionadded:: 4.0
-
A stream-like object where verbose output should be redirected.
``using``
diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt
index 0df9ea2227..c4b83a8be8 100644
--- a/docs/ref/templates/builtins.txt
+++ b/docs/ref/templates/builtins.txt
@@ -1764,13 +1764,6 @@ locale is ``pl`` (Polish):
Using ``floatformat`` with no argument is equivalent to using ``floatformat``
with an argument of ``-1``.
-.. versionchanged:: 4.0
-
- ``floatformat`` template filter no longer depends on the
- :setting:`USE_L10N` setting and always returns localized output.
-
- The ``u`` suffix to force disabling localization was added.
-
.. templatefilter:: force_escape
``force_escape``