diff --git a/.github/workflows/postgis.yml b/.github/workflows/postgis.yml
index 1df146cd3e50..7976fdc03d78 100644
--- a/.github/workflows/postgis.yml
+++ b/.github/workflows/postgis.yml
@@ -59,7 +59,7 @@ jobs:
run: |
PGPASSWORD=$POSTGRES_PASSWORD psql -U $POSTGRES_USER -d $POSTGRES_DB -h localhost -c "SELECT PostGIS_full_version();"
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e .
- name: Create PostgreSQL settings file
run: mv ./.github/workflows/data/test_postgis.py.tpl ./tests/test_postgis.py
diff --git a/.github/workflows/python_matrix.yml b/.github/workflows/python_matrix.yml
index 072bf1cdbc8c..bbdb4458b4b6 100644
--- a/.github/workflows/python_matrix.yml
+++ b/.github/workflows/python_matrix.yml
@@ -46,7 +46,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run tests
run: python -Wall tests/runtests.py -v2
diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml
index c4d559ec95c6..6ac72e24bbe8 100644
--- a/.github/workflows/schedule_tests.yml
+++ b/.github/workflows/schedule_tests.yml
@@ -31,7 +31,7 @@ jobs:
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run tests
run: python -Wall tests/runtests.py -v2
@@ -50,7 +50,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install .
- name: Prepare site-packages
run: |
@@ -92,7 +92,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run Selenium tests
working-directory: ./tests/
@@ -128,7 +128,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e .
- name: Create PostgreSQL settings file
run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py
@@ -173,7 +173,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e .
- name: Create PostgreSQL settings file
run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py
diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml
index c7012366303c..c29cfc9eedf5 100644
--- a/.github/workflows/screenshots.yml
+++ b/.github/workflows/screenshots.yml
@@ -28,7 +28,7 @@ jobs:
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run Selenium tests with screenshots
diff --git a/.github/workflows/selenium.yml b/.github/workflows/selenium.yml
index 9cb71c914335..c5e22d70c320 100644
--- a/.github/workflows/selenium.yml
+++ b/.github/workflows/selenium.yml
@@ -30,7 +30,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run Selenium tests
working-directory: ./tests/
@@ -67,7 +67,7 @@ jobs:
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e .
- name: Create PostgreSQL settings file
run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index d293f4dd0a12..eb0966e7a278 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -35,7 +35,7 @@ jobs:
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install and upgrade packaging tools
- run: python -m pip install --upgrade pip setuptools wheel
+ run: python -m pip install --upgrade pip wheel
- run: python -m pip install -r tests/requirements/py3.txt -e .
- name: Run tests
run: python -Wall tests/runtests.py -v2
diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py
index 2214e134d092..aff0cca342aa 100644
--- a/django/contrib/auth/forms.py
+++ b/django/contrib/auth/forms.py
@@ -134,6 +134,9 @@ def set_password_and_save(self, user, password_field_name="password1", commit=Tr
user.save()
return user
+ def __class_getitem__(cls, *args, **kwargs):
+ return cls
+
class SetUnusablePasswordMixin:
"""
diff --git a/django/db/models/base.py b/django/db/models/base.py
index d1321d654088..fd51052d0199 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -1182,8 +1182,9 @@ def _do_update(
returning_fields,
):
"""
- Try to update the model. Return True if the model was updated (if an
- update query was done and a matching row was found in the DB).
+ Try to update the model. Return a list of updated fields if the model
+ was updated (if an update query was done and a matching row was
+ found in the DB).
"""
filtered = base_qs.filter(pk=pk_val)
if not values:
diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt
index b4bc429af5fe..974b4861d5e9 100644
--- a/docs/internals/contributing/writing-code/unit-tests.txt
+++ b/docs/internals/contributing/writing-code/unit-tests.txt
@@ -325,7 +325,6 @@ dependencies:
* :pypi:`PyYAML` 6.0.2+
* :pypi:`pywatchman`
* :pypi:`redis` 5.1.0+
-* :pypi:`setuptools`
* :pypi:`pymemcache`, plus a `supported Python binding
`_
* `gettext `_
diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt
index a76651934a17..4a8dd6483c72 100644
--- a/docs/internals/howto-release-django.txt
+++ b/docs/internals/howto-release-django.txt
@@ -604,8 +604,7 @@ Now you're ready to actually put the release out there. To do this:
__ https://djangoci.com/job/confirm-release/
-#. Upload the release packages to PyPI (for pre-releases, only upload the wheel
- file):
+#. Upload the release packages to PyPI:
.. code-block:: shell
diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py
index be55c4369bc1..73065adddf40 100644
--- a/tests/auth_tests/test_forms.py
+++ b/tests/auth_tests/test_forms.py
@@ -350,6 +350,9 @@ def test_html_autocomplete_attributes(self):
form.fields[field_name].widget.attrs["autocomplete"], autocomplete
)
+ def test_user_creation_form_class_getitem(self):
+ self.assertIs(BaseUserCreationForm["MyCustomUser"], BaseUserCreationForm)
+
class CustomUserCreationFormTest(TestDataMixin, TestCase):