diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2019-12-19 11:08:02 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-12-19 13:33:05 +0100 |
| commit | a3fc24f01484d4bdd106bc6d7c49049fc5352af6 (patch) | |
| tree | 19f529eeff3cee331cff528ed6bd9fe86a595edd /django | |
| parent | 5a4d7285bd10bd40d9f7e574a7c421eb21094858 (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.py | 3 |
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) |
