diff options
| author | Vytis Banaitis <vytis.banaitis@gmail.com> | 2017-02-01 18:41:56 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-02-01 11:41:56 -0500 |
| commit | 8838d4dd498c8f66ea4237fe8a79a5f77d6f95c9 (patch) | |
| tree | b75fa27930b8758ad36669b523b084ac09ce290b /django/db/models/fields/related_descriptors.py | |
| parent | 0ec4dc91e0e7befdd06aa0613b5d0fbe3c785ee7 (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.py | 30 |
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: |
