summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAlbert Defler <alnw@interia.eu>2022-02-05 20:00:20 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-25 07:51:37 +0100
commit2b6a3baebe70e4d481dd256bdb774ac15e248540 (patch)
treed64a0e39dd47dcb3eff6a4ac9a3a3835829a5c03 /django
parent11cc227344de06ffd0ad7f07c4e4bdd18851adac (diff)
Fixed #31486 -- Deprecated passing unsaved objects to related filters.
Co-Authored-By: Hasan Ramezani <hasan.r67@gmail.com>
Diffstat (limited to 'django')
-rw-r--r--django/db/models/fields/related_lookups.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/django/db/models/fields/related_lookups.py b/django/db/models/fields/related_lookups.py
index 99eadc5da7..17a8622ff9 100644
--- a/django/db/models/fields/related_lookups.py
+++ b/django/db/models/fields/related_lookups.py
@@ -1,3 +1,5 @@
+import warnings
+
from django.db.models.lookups import (
Exact,
GreaterThan,
@@ -7,6 +9,7 @@ from django.db.models.lookups import (
LessThan,
LessThanOrEqual,
)
+from django.utils.deprecation import RemovedInDjango50Warning
class MultiColSource:
@@ -40,6 +43,15 @@ def get_normalized_value(value, lhs):
from django.db.models import Model
if isinstance(value, Model):
+ if value.pk is None:
+ # When the deprecation ends, replace with:
+ # raise ValueError(
+ # "Model instances passed to related filters must be saved."
+ # )
+ warnings.warn(
+ "Passing unsaved model instances to related filters is deprecated.",
+ RemovedInDjango50Warning,
+ )
value_list = []
sources = lhs.output_field.path_infos[-1].target_fields
for source in sources: