diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-05-15 03:37:41 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-05-15 03:37:41 +0000 |
| commit | 433659139596a75eab03940ea2029970de6ee287 (patch) | |
| tree | b4ee37f43df2d7a560a403a9d391c51702946772 /django/core | |
| parent | 415e84ad53e0d0d8f7df87784c1893489bdbe0b8 (diff) | |
newforms-admin: Merged to [5243]. There are 3 failing tests in regressiontests.serializers_regress.tests.SerializerTests, but they fail in trunk also.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@5244 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/management.py | 16 | ||||
| -rw-r--r-- | django/core/serializers/python.py | 7 | ||||
| -rw-r--r-- | django/core/serializers/xml_serializer.py | 4 |
3 files changed, 17 insertions, 10 deletions
diff --git a/django/core/management.py b/django/core/management.py index ea79bf5262..30a4d6848c 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -1407,20 +1407,24 @@ def load_data(fixture_labels, verbosity=1): if verbosity > 1: print "No %s fixture '%s' in %s." % \ (format, fixture_name, humanize(fixture_dir)) - if count[0] == 0: - if verbosity > 0: - print "No fixtures found." - else: - if verbosity > 0: - print "Installed %d object(s) from %d fixture(s)" % tuple(count) + + if count[0] > 0: sequence_sql = backend.get_sql_sequence_reset(style, models) if sequence_sql: if verbosity > 1: print "Resetting sequences" for line in sequence_sql: cursor.execute(line) + transaction.commit() transaction.leave_transaction_management() + + if count[0] == 0: + if verbosity > 0: + print "No fixtures found." + else: + if verbosity > 0: + print "Installed %d object(s) from %d fixture(s)" % tuple(count) load_data.help_doc = 'Installs the named fixture(s) in the database' load_data.args = "[--verbosity] fixture, fixture, ..." diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 29ce6bf9bd..66dbbff335 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -37,7 +37,7 @@ class Serializer(base.Serializer): def handle_fk_field(self, obj, field): related = getattr(obj, field.name) if related is not None: - related = related._get_pk_val() + related = getattr(related, field.rel.field_name) self._current[field.name] = related def handle_m2m_field(self, obj, field): @@ -80,7 +80,10 @@ def Deserializer(object_list, **options): # Handle FK fields elif field.rel and isinstance(field.rel, models.ManyToOneRel): - data[field.attname] = field.rel.to._meta.pk.to_python(field_value) + if field_value: + data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value) + else: + data[field.attname] = None # Handle all other fields else: diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py index 3a0fdb5395..633001f5f0 100644 --- a/django/core/serializers/xml_serializer.py +++ b/django/core/serializers/xml_serializer.py @@ -82,7 +82,7 @@ class Serializer(base.Serializer): self._start_relational_field(field) related = getattr(obj, field.name) if related is not None: - self.xml.characters(str(related._get_pk_val())) + self.xml.characters(str(getattr(related, field.rel.field_name))) else: self.xml.addQuickElement("None") self.xml.endElement("field") @@ -181,7 +181,7 @@ class Deserializer(base.Deserializer): if len(node.childNodes) == 1 and node.childNodes[0].nodeName == 'None': return None else: - return field.rel.to._meta.pk.to_python( + return field.rel.to._meta.get_field(field.rel.field_name).to_python( getInnerText(node).strip().encode(self.encoding)) def _handle_m2m_field_node(self, node, field): |
