From 5b812ae02cfa1e80e959f0bf31e7f82138094bb5 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Wed, 10 Aug 2005 03:50:46 +0000 Subject: [PATCH] Undid [455] -- it's not a good enough solution for what I'm trying to do git-svn-id: http://code.djangoproject.com/svn/django/trunk@457 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/meta/__init__.py | 5 ++--- django/core/meta/fields.py | 14 +++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py index d8e2d250bdd..c6bcb09e4bc 100644 --- a/django/core/meta/__init__.py +++ b/django/core/meta/__init__.py @@ -718,9 +718,8 @@ def method_save(opts, self): non_pks = [f for f in opts.fields if not f.primary_key] cursor = db.db.cursor() add = not bool(getattr(self, opts.pk.name)) - if add: - for f in non_pks: - f.pre_save_add(self, getattr(self, f.name)) + for f in non_pks: + f.pre_save(self, getattr(self, f.name), add) db_values = [f.get_db_prep_save(getattr(self, f.name)) for f in non_pks] # OneToOne objects are a special case because there's no AutoField, and the # primary key field is set manually. diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index 959cd0a033b..34027a8d7a3 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -82,10 +82,10 @@ class Field(object): else: self.db_index = db_index - def pre_save_add(self, obj, value): + def pre_save(self, obj, value, add): """ - Hook for altering the object obj based on the value of this field, - during the add stage. + Hook for altering the object obj based on the value of this field and + and on the add/change status. """ pass @@ -280,8 +280,8 @@ class DateField(Field): value = str(value) return Field.get_db_prep_lookup(self, lookup_type, value) - def pre_save_add(self, obj, value): - if self.auto_now or self.auto_now_add: + def pre_save(self, obj, value, add): + if self.auto_now or (self.auto_now_add and add): setattr(obj, self.name, datetime.datetime.now()) def get_db_prep_save(self, value): @@ -483,8 +483,8 @@ class TimeField(Field): value = str(value) return Field.get_db_prep_lookup(self, lookup_type, value) - def pre_save_add(self, obj, value): - if self.auto_now or self.auto_now_add: + def pre_save(self, obj, value, add): + if self.auto_now or (self.auto_now_add and add): setattr(obj, self.name, datetime.datetime.now().time()) def get_db_prep_save(self, value):