summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/expressions.py1
-rw-r--r--tests/annotations/tests.py8
2 files changed, 9 insertions, 0 deletions
diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py
index cac3c0aae8..21a49bc229 100644
--- a/django/db/models/expressions.py
+++ b/django/db/models/expressions.py
@@ -1546,6 +1546,7 @@ class Subquery(BaseExpression, Combinable):
class Exists(Subquery):
template = "EXISTS(%(subquery)s)"
output_field = fields.BooleanField()
+ empty_result_set_value = False
def __init__(self, queryset, **kwargs):
super().__init__(queryset, **kwargs)
diff --git a/tests/annotations/tests.py b/tests/annotations/tests.py
index d05af552b4..e0cdbf1e0b 100644
--- a/tests/annotations/tests.py
+++ b/tests/annotations/tests.py
@@ -1017,6 +1017,14 @@ class NonAggregateAnnotationTestCase(TestCase):
],
)
+ def test_annotation_exists_none_query(self):
+ self.assertIs(
+ Author.objects.annotate(exists=Exists(Company.objects.none()))
+ .get(pk=self.a1.pk)
+ .exists,
+ False,
+ )
+
def test_annotation_exists_aggregate_values_chaining(self):
qs = (
Book.objects.values("publisher")