summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2019-12-19 11:08:02 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-12-19 13:33:05 +0100
commita3fc24f01484d4bdd106bc6d7c49049fc5352af6 (patch)
tree19f529eeff3cee331cff528ed6bd9fe86a595edd /django
parent5a4d7285bd10bd40d9f7e574a7c421eb21094858 (diff)
Fixed #31095 -- Made RelatedManager.set() preserve existing m2m relations with an invalid type.
Diffstat (limited to 'django')
-rw-r--r--django/db/models/fields/related_descriptors.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/django/db/models/fields/related_descriptors.py b/django/db/models/fields/related_descriptors.py
index a9445d5d10..451d0b4e1f 100644
--- a/django/db/models/fields/related_descriptors.py
+++ b/django/db/models/fields/related_descriptors.py
@@ -999,7 +999,8 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
for obj in objs:
fk_val = (
self.target_field.get_foreign_related_value(obj)[0]
- if isinstance(obj, self.model) else obj
+ if isinstance(obj, self.model)
+ else self.target_field.get_prep_value(obj)
)
if fk_val in old_ids:
old_ids.remove(fk_val)