summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEsau Rodriguez <esauro@gmail.com>2014-02-21 06:43:08 +0000
committerTim Graham <timograham@gmail.com>2014-05-18 15:52:07 -0400
commitec9043ab2f6027da709d1daf0df5599db6a77453 (patch)
tree7e113d267b22c93959db9466cf9690431cc81a9f
parent5a2556afb9b1b3ef6e0622552970c67ac84ecd28 (diff)
Fixed #21799 - Modified loaddata --ignorenonexistent to ignore models.
-rw-r--r--django/core/serializers/python.py8
-rw-r--r--docs/ref/django-admin.txt9
-rw-r--r--docs/releases/1.8.txt3
-rw-r--r--tests/fixtures_regress/fixtures/sequence_extra.json11
4 files changed, 27 insertions, 4 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py
index 249dc5a054..aa21598695 100644
--- a/django/core/serializers/python.py
+++ b/django/core/serializers/python.py
@@ -90,7 +90,13 @@ def Deserializer(object_list, **options):
for d in object_list:
# 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 = {}
if 'pk' in d:
data[Model._meta.pk.attname] = Model._meta.pk.to_python(d.get("pk", None))
diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
index 7ceddb9cc2..fe1d8dbc38 100644
--- a/docs/ref/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -383,14 +383,17 @@ onto which the data will be loaded.
.. django-admin-option:: --ignorenonexistent
-The :djadminopt:`--ignorenonexistent` option can be used to ignore fields that
-may have been removed from models since the fixture was originally generated.
-
+The :djadminopt:`--ignorenonexistent` option can be used to ignore fields and
+models that may have been removed since the fixture was originally generated.
.. versionchanged:: 1.7
``--app`` was added.
+.. versionchanged:: 1.8
+
+ ``--ignorenonexistent`` also ignores non-existent models.
+
.. django-admin-option:: --app
The :djadminopt:`--app` option can be used to specify a single app to look
diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt
index 94a4f3ed74..6b0cb85058 100644
--- a/docs/releases/1.8.txt
+++ b/docs/releases/1.8.txt
@@ -145,6 +145,9 @@ Management Commands
:djadminopt:`--exclude` which allows exclusion of specific locales from
processing.
+* The :djadminopt:`--ignorenonexistent` option of the :djadmin:`loaddata`
+ management command now ignores data for models that no longer exist.
+
Models
^^^^^^
diff --git a/tests/fixtures_regress/fixtures/sequence_extra.json b/tests/fixtures_regress/fixtures/sequence_extra.json
index 03c0f36696..d668ef6143 100644
--- a/tests/fixtures_regress/fixtures/sequence_extra.json
+++ b/tests/fixtures_regress/fixtures/sequence_extra.json
@@ -9,5 +9,16 @@
"count": 3,
"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
+ }
}
]