summaryrefslogtreecommitdiff
path: root/django/db/models/fields/related_descriptors.py
diff options
context:
space:
mode:
authorVytis Banaitis <vytis.banaitis@gmail.com>2017-02-01 18:41:56 +0200
committerTim Graham <timograham@gmail.com>2017-02-01 11:41:56 -0500
commit8838d4dd498c8f66ea4237fe8a79a5f77d6f95c9 (patch)
treeb75fa27930b8758ad36669b523b084ac09ce290b /django/db/models/fields/related_descriptors.py
parent0ec4dc91e0e7befdd06aa0613b5d0fbe3c785ee7 (diff)
Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments.
Diffstat (limited to 'django/db/models/fields/related_descriptors.py')
-rw-r--r--django/db/models/fields/related_descriptors.py30
1 files changed, 9 insertions, 21 deletions
diff --git a/django/db/models/fields/related_descriptors.py b/django/db/models/fields/related_descriptors.py
index b3e87cd482..5899a2324c 100644
--- a/django/db/models/fields/related_descriptors.py
+++ b/django/db/models/fields/related_descriptors.py
@@ -510,10 +510,8 @@ def create_reverse_many_to_one_manager(superclass, rel):
self.core_filters = {self.field.name: instance}
- def __call__(self, **kwargs):
- # We use **kwargs rather than a kwarg argument to enforce the
- # `manager='manager_name'` syntax.
- manager = getattr(self.model, kwargs.pop('manager'))
+ def __call__(self, *, manager):
+ manager = getattr(self.model, manager)
manager_class = create_reverse_many_to_one_manager(manager.__class__, rel)
return manager_class(self.instance)
do_not_call_in_templates = True
@@ -569,9 +567,8 @@ def create_reverse_many_to_one_manager(superclass, rel):
cache_name = self.field.related_query_name()
return queryset, rel_obj_attr, instance_attr, False, cache_name
- def add(self, *objs, **kwargs):
+ def add(self, *objs, bulk=True):
self._remove_prefetched_objects()
- bulk = kwargs.pop('bulk', True)
objs = list(objs)
db = router.db_for_write(self.model, instance=self.instance)
@@ -622,10 +619,9 @@ def create_reverse_many_to_one_manager(superclass, rel):
# remove() and clear() are only provided if the ForeignKey can have a value of null.
if rel.field.null:
- def remove(self, *objs, **kwargs):
+ def remove(self, *objs, bulk=True):
if not objs:
return
- bulk = kwargs.pop('bulk', True)
val = self.field.get_foreign_related_value(self.instance)
old_ids = set()
for obj in objs:
@@ -639,8 +635,7 @@ def create_reverse_many_to_one_manager(superclass, rel):
self._clear(self.filter(pk__in=old_ids), bulk)
remove.alters_data = True
- def clear(self, **kwargs):
- bulk = kwargs.pop('bulk', True)
+ def clear(self, *, bulk=True):
self._clear(self, bulk)
clear.alters_data = True
@@ -658,14 +653,11 @@ def create_reverse_many_to_one_manager(superclass, rel):
obj.save(update_fields=[self.field.name])
_clear.alters_data = True
- def set(self, objs, **kwargs):
+ def set(self, objs, *, bulk=True, clear=False):
# Force evaluation of `objs` in case it's a queryset whose value
# could be affected by `manager.clear()`. Refs #19816.
objs = tuple(objs)
- bulk = kwargs.pop('bulk', True)
- clear = kwargs.pop('clear', False)
-
if self.field.null:
db = router.db_for_write(self.model, instance=self.instance)
with transaction.atomic(using=db, savepoint=False):
@@ -791,10 +783,8 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
"a many-to-many relationship can be used." %
instance.__class__.__name__)
- def __call__(self, **kwargs):
- # We use **kwargs rather than a kwarg argument to enforce the
- # `manager='manager_name'` syntax.
- manager = getattr(self.model, kwargs.pop('manager'))
+ def __call__(self, *, manager):
+ manager = getattr(self.model, manager)
manager_class = create_forward_many_to_many_manager(manager.__class__, rel, reverse)
return manager_class(instance=self.instance)
do_not_call_in_templates = True
@@ -924,7 +914,7 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
)
clear.alters_data = True
- def set(self, objs, **kwargs):
+ def set(self, objs, *, clear=False):
if not rel.through._meta.auto_created:
opts = self.through._meta
raise AttributeError(
@@ -937,8 +927,6 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
# could be affected by `manager.clear()`. Refs #19816.
objs = tuple(objs)
- clear = kwargs.pop('clear', False)
-
db = router.db_for_write(self.through, instance=self.instance)
with transaction.atomic(using=db, savepoint=False):
if clear: