(self, *objs, bulk=True)
| 931 | if rel.field.null: |
| 932 | |
| 933 | def remove(self, *objs, bulk=True): |
| 934 | if not objs: |
| 935 | return |
| 936 | self._check_fk_val() |
| 937 | val = self.field.get_foreign_related_value(self.instance) |
| 938 | old_ids = set() |
| 939 | for obj in objs: |
| 940 | if not isinstance(obj, self.model): |
| 941 | raise TypeError( |
| 942 | "'%s' instance expected, got %r" |
| 943 | % ( |
| 944 | self.model._meta.object_name, |
| 945 | obj, |
| 946 | ) |
| 947 | ) |
| 948 | # Is obj actually part of this descriptor set? |
| 949 | if self.field.get_local_related_value(obj) == val: |
| 950 | old_ids.add(obj.pk) |
| 951 | else: |
| 952 | raise self.field.remote_field.model.DoesNotExist( |
| 953 | "%r is not related to %r." % (obj, self.instance) |
| 954 | ) |
| 955 | self._clear(self.filter(pk__in=old_ids), bulk) |
| 956 | |
| 957 | remove.alters_data = True |
| 958 |
no test coverage detected