Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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
  • Loading branch information...
commit 5b812ae02cfa1e80e959f0bf31e7f82138094bb5 1 parent 8a209c2
@adrianholovaty adrianholovaty authored
Showing with 9 additions and 10 deletions.
  1. +2 −3 django/core/meta/__init__.py
  2. +7 −7 django/core/meta/fields.py
View
5 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.
View
14 django/core/meta/fields.py
@@ -82,10 +82,10 @@ def __init__(self, name, verbose_name=None, primary_key=False,
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 @@ def get_db_prep_lookup(self, lookup_type, value):
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 @@ def get_db_prep_lookup(self, lookup_type, value):
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):
Please sign in to comment.
Something went wrong with that request. Please try again.