summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2020-01-09 11:10:25 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-01-09 12:20:54 +0100
commiteef3ea847e12f23db9a0af8efdc9543f24b780c4 (patch)
tree4121c0714774e68294babff2231ad8bbb0e98f96
parentf600e3fad6e92d9fe1ad8b351dc8446415f24345 (diff)
Fixed #31148 -- Added error messages on update()/delete() operations following union(), intersection(), and difference().
-rw-r--r--django/db/models/query.py2
-rw-r--r--tests/queries/test_qs_combinators.py2
2 files changed, 4 insertions, 0 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 38c13584d1..f8be008a62 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -711,6 +711,7 @@ class QuerySet:
def delete(self):
"""Delete the records in the current QuerySet."""
+ self._not_support_combined_queries('delete')
assert not self.query.is_sliced, \
"Cannot use 'limit' or 'offset' with delete."
@@ -756,6 +757,7 @@ class QuerySet:
Update all elements in the current QuerySet, setting all the given
fields to the appropriate values.
"""
+ self._not_support_combined_queries('update')
assert not self.query.is_sliced, \
"Cannot update a query once a slice has been taken."
self._for_write = True
diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py
index 668d5e6ad6..71309ecf1b 100644
--- a/tests/queries/test_qs_combinators.py
+++ b/tests/queries/test_qs_combinators.py
@@ -272,12 +272,14 @@ class QuerySetSetOperationTests(TestCase):
for operation in (
'annotate',
'defer',
+ 'delete',
'exclude',
'extra',
'filter',
'only',
'prefetch_related',
'select_related',
+ 'update',
):
with self.subTest(combinator=combinator, operation=operation):
with self.assertRaisesMessage(