Fixed #21799 - Modified loaddata --ignorenonexistent to ignore models.
This commit is contained in:
parent
5a2556afb9
commit
ec9043ab2f
|
@ -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.
|
||||||
Model = _get_model(d["model"])
|
try:
|
||||||
|
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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue