MCPcopy
hub / github.com/django/django / remove

Method remove

django/db/models/fields/related_descriptors.py:933–955  ·  view source on GitHub ↗
(self, *objs, bulk=True)

Source from the content-addressed store, hash-verified

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

Callers 15

setMethod · 0.95
_remake_tableMethod · 0.45
delete_modelMethod · 0.45
_create_test_dbMethod · 0.45
_clone_test_dbMethod · 0.45
_destroy_test_dbMethod · 0.45
delete_modelMethod · 0.45
remove_fieldMethod · 0.45
_delete_index_sqlMethod · 0.45
_migrate_all_forwardsMethod · 0.45
as_stringMethod · 0.45

Calls 6

_check_fk_valMethod · 0.95
_clearMethod · 0.95
addMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected