diff options
| author | Albert Defler <alnw@interia.eu> | 2022-02-05 20:00:20 +0000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-25 07:51:37 +0100 |
| commit | 2b6a3baebe70e4d481dd256bdb774ac15e248540 (patch) | |
| tree | d64a0e39dd47dcb3eff6a4ac9a3a3835829a5c03 /django | |
| parent | 11cc227344de06ffd0ad7f07c4e4bdd18851adac (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.py | 12 |
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: |
