summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2005-08-10 03:44:51 +0000
committerAdrian Holovaty <adrian@holovaty.com>2005-08-10 03:44:51 +0000
commit6d234fae8ce1f1312db3b9662e2f8fb147e58d8b (patch)
treeba21756761f81872ad75659d2122eddd533b2dbf
parent258e6bc33034b755a6c94cfa22b6ee44b1494501 (diff)
Slightly refactored metasystem -- changed Field pre_save() hooks to pre_save_add(), in preparation for some bigger changes. Refs #81.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@455 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/core/meta/__init__.py5
-rw-r--r--django/core/meta/fields.py14
2 files changed, 10 insertions, 9 deletions
diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py
index c6bcb09e4b..d8e2d250bd 100644
--- a/django/core/meta/__init__.py
+++ b/django/core/meta/__init__.py
@@ -718,8 +718,9 @@ 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))
- for f in non_pks:
- f.pre_save(self, getattr(self, f.name), add)
+ if add:
+ for f in non_pks:
+ f.pre_save_add(self, getattr(self, f.name))
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 34027a8d7a..959cd0a033 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(self, obj, value, add):
+ def pre_save_add(self, obj, value):
"""
- Hook for altering the object obj based on the value of this field and
- and on the add/change status.
+ Hook for altering the object obj based on the value of this field,
+ during the add stage.
"""
pass
@@ -280,8 +280,8 @@ class DateField(Field):
value = str(value)
return Field.get_db_prep_lookup(self, lookup_type, value)
- def pre_save(self, obj, value, add):
- if self.auto_now or (self.auto_now_add and add):
+ def pre_save_add(self, obj, value):
+ if self.auto_now or self.auto_now_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(self, obj, value, add):
- if self.auto_now or (self.auto_now_add and add):
+ def pre_save_add(self, obj, value):
+ if self.auto_now or self.auto_now_add:
setattr(obj, self.name, datetime.datetime.now().time())
def get_db_prep_save(self, value):