Fixed #21799 - Modified loaddata --ignorenonexistent to ignore models.

This commit is contained in:
Esau Rodriguez 2014-02-21 06:43:08 +00:00 committed by Tim Graham
parent 5a2556afb9
commit ec9043ab2f
4 changed files with 27 additions and 4 deletions

View File

@ -90,7 +90,13 @@ def Deserializer(object_list, **options):
for d in object_list: for d in object_list:
# Look up the model and starting build a dict of data for it. # Look up the model and starting build a dict of data for it.
try:
Model = _get_model(d["model"]) Model = _get_model(d["model"])
except base.DeserializationError as e:
if ignore:
continue
else:
raise e
data = {} data = {}
if 'pk' in d: if 'pk' in d:
data[Model._meta.pk.attname] = Model._meta.pk.to_python(d.get("pk", None)) data[Model._meta.pk.attname] = Model._meta.pk.to_python(d.get("pk", None))

View File

@ -383,14 +383,17 @@ onto which the data will be loaded.
.. django-admin-option:: --ignorenonexistent .. django-admin-option:: --ignorenonexistent
The :djadminopt:`--ignorenonexistent` option can be used to ignore fields that The :djadminopt:`--ignorenonexistent` option can be used to ignore fields and
may have been removed from models since the fixture was originally generated. models that may have been removed since the fixture was originally generated.
.. versionchanged:: 1.7 .. versionchanged:: 1.7
``--app`` was added. ``--app`` was added.
.. versionchanged:: 1.8
``--ignorenonexistent`` also ignores non-existent models.
.. django-admin-option:: --app .. django-admin-option:: --app
The :djadminopt:`--app` option can be used to specify a single app to look The :djadminopt:`--app` option can be used to specify a single app to look

View File

@ -145,6 +145,9 @@ Management Commands
:djadminopt:`--exclude` which allows exclusion of specific locales from :djadminopt:`--exclude` which allows exclusion of specific locales from
processing. processing.
* The :djadminopt:`--ignorenonexistent` option of the :djadmin:`loaddata`
management command now ignores data for models that no longer exist.
Models Models
^^^^^^ ^^^^^^

View File

@ -9,5 +9,16 @@
"count": 3, "count": 3,
"weight": 1.2 "weight": 1.2
} }
},
{
"pk": "1",
"model": "fixtures_regress.animal_extra",
"fields": {
"name": "Non-existent model",
"extra_name": "test for ticket #21799",
"latin_name": "Panthera leo",
"count": 3,
"weight": 1.2
}
} }
] ]