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/core/serializers/python.py | |
parent | 0ec4dc91e0e7befdd06aa0613b5d0fbe3c785ee7 (diff) | |
download | django-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.py | 14 |
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) |