summaryrefslogtreecommitdiff
path: root/django/core/serializers/python.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/core/serializers/python.py
parent0ec4dc91e0e7befdd06aa0613b5d0fbe3c785ee7 (diff)
downloaddjango-8838d4dd498c8f66ea4237fe8a79a5f77d6f95c9.tar.gz
Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments.
Diffstat (limited to 'django/core/serializers/python.py')
-rw-r--r--django/core/serializers/python.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py
index 7b7510be41..a299ed62c8 100644
--- a/django/core/serializers/python.py
+++ b/django/core/serializers/python.py
@@ -79,15 +79,13 @@ class Serializer(base.Serializer):
return self.objects
-def Deserializer(object_list, **options):
+def Deserializer(object_list, *, using=DEFAULT_DB_ALIAS, ignorenonexistent=False, **options):
"""
Deserialize simple Python objects back into Django ORM instances.
It's expected that you pass the Python objects themselves (instead of a
stream or a string) to the constructor
"""
- db = options.pop('using', DEFAULT_DB_ALIAS)
- ignore = options.pop('ignorenonexistent', False)
field_names_cache = {} # Model: <list of field_names>
for d in object_list:
@@ -95,7 +93,7 @@ def Deserializer(object_list, **options):
try:
Model = _get_model(d["model"])
except base.DeserializationError:
- if ignore:
+ if ignorenonexistent:
continue
else:
raise
@@ -114,7 +112,7 @@ def Deserializer(object_list, **options):
# Handle each field
for (field_name, field_value) in d["fields"].items():
- if ignore and field_name not in field_names:
+ if ignorenonexistent and field_name not in field_names:
# skip fields no longer on model
continue
@@ -131,7 +129,7 @@ def Deserializer(object_list, **options):
if hasattr(model._default_manager, 'get_by_natural_key'):
def m2m_convert(value):
if hasattr(value, '__iter__') and not isinstance(value, str):
- return model._default_manager.db_manager(db).get_by_natural_key(*value).pk
+ return model._default_manager.db_manager(using).get_by_natural_key(*value).pk
else:
return force_text(model._meta.pk.to_python(value), strings_only=True)
else:
@@ -154,7 +152,7 @@ def Deserializer(object_list, **options):
field_name = field.remote_field.field_name
if hasattr(default_manager, 'get_by_natural_key'):
if hasattr(field_value, '__iter__') and not isinstance(field_value, str):
- obj = default_manager.db_manager(db).get_by_natural_key(*field_value)
+ obj = default_manager.db_manager(using).get_by_natural_key(*field_value)
value = getattr(obj, field.remote_field.field_name)
# If this is a natural foreign key to an object that
# has a FK/O2O as the foreign key, use the FK value
@@ -177,7 +175,7 @@ def Deserializer(object_list, **options):
except Exception as e:
raise base.DeserializationError.WithData(e, d['model'], d.get('pk'), field_value)
- obj = base.build_instance(Model, data, db)
+ obj = base.build_instance(Model, data, using)
yield base.DeserializedObject(obj, m2m_data)