diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-08-10 03:50:46 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-08-10 03:50:46 +0000 |
| commit | 5b812ae02cfa1e80e959f0bf31e7f82138094bb5 (patch) | |
| tree | b8d2bb2e4c01cb947c6a192225587bf535cf22f4 | |
| parent | 8a209c232c2334986b59b4caf56d08bdb79a269a (diff) | |
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
| -rw-r--r-- | django/core/meta/__init__.py | 5 | ||||
| -rw-r--r-- | 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 d8e2d250bd..c6bcb09e4b 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 959cd0a033..34027a8d7a 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): |
