summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2007-07-12 07:45:35 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2007-07-12 07:45:35 +0000
commit2d6d20def70dacf4ea783e5a0c8a72266e603bb7 (patch)
treefa08081ed0e00e33af408f9e9570b48b1e202a19 /django/core
parent090aa5210ebd5ce3c79db95d3f04c95ed346f42a (diff)
Fixed #4459 -- Added 'raw' argument to save method, to override any pre-save processing, and modified serializers to use a raw-save. This enables serialization of DateFields with auto_now/auto_now_add. Also modified serializers to invoke save() directly on the model baseclass, to avoid any (potentially order-dependent, data modifying) behavior in a custom save() method.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5658 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core')
-rw-r--r--django/core/serializers/base.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/django/core/serializers/base.py b/django/core/serializers/base.py
index 1ef7bee472..ee9e4dd621 100644
--- a/django/core/serializers/base.py
+++ b/django/core/serializers/base.py
@@ -158,7 +158,12 @@ class DeserializedObject(object):
return "<DeserializedObject: %s>" % smart_str(self.object)
def save(self, save_m2m=True):
- self.object.save()
+ # Call save on the Model baseclass directly. This bypasses any
+ # model-defined save. The save is also forced to be raw.
+ # This ensures that the data that is deserialized is literally
+ # what came from the file, not post-processed by pre_save/save
+ # methods.
+ models.Model.save(self.object, raw=True)
if self.m2m_data and save_m2m:
for accessor_name, object_list in self.m2m_data.items():
setattr(self.object, accessor_name, object_list)