diff options
| author | Carlton Gibson <carlton.gibson@noumenal.es> | 2020-02-18 10:50:19 +0100 |
|---|---|---|
| committer | Carlton Gibson <carlton@noumenal.es> | 2020-02-18 19:54:29 +0100 |
| commit | a34cb5a6d408203f4fbdb364fc9768c026eda224 (patch) | |
| tree | cfaadf39dabf430c9e46d0e07cf937735650b079 /django | |
| parent | 3bbf9a489afc689eff2f4a0b84af196aa1ef51e7 (diff) | |
Refs #31282 -- Clarified M2O add/remove/set with PK behaviour.
Improved error message for remove() and added tests.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/fields/related_descriptors.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/django/db/models/fields/related_descriptors.py b/django/db/models/fields/related_descriptors.py index 451d0b4e1f..20f247c603 100644 --- a/django/db/models/fields/related_descriptors.py +++ b/django/db/models/fields/related_descriptors.py @@ -697,6 +697,10 @@ def create_reverse_many_to_one_manager(superclass, rel): val = self.field.get_foreign_related_value(self.instance) old_ids = set() for obj in objs: + if not isinstance(obj, self.model): + raise TypeError("'%s' instance expected, got %r" % ( + self.model._meta.object_name, obj, + )) # Is obj actually part of this descriptor set? if self.field.get_local_related_value(obj) == val: old_ids.add(obj.pk) |
