Changeset 7054
- Timestamp:
- 02/01/08 11:32:29 (6 months ago)
- Files:
-
- django/trunk/django/db/models/base.py (modified) (2 diffs)
- django/trunk/tests/modeltests/signals/models.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/base.py
r6838 r7054 210 210 211 211 def save(self, raw=False): 212 dispatcher.send(signal=signals.pre_save, sender=self.__class__, instance=self) 212 dispatcher.send(signal=signals.pre_save, sender=self.__class__, 213 instance=self, raw=raw) 213 214 214 215 non_pks = [f for f in self._meta.fields if not f.primary_key] … … 271 272 # Run any post-save hooks. 272 273 dispatcher.send(signal=signals.post_save, sender=self.__class__, 273 instance=self, created=(not record_exists))274 instance=self, created=(not record_exists), raw=raw) 274 275 275 276 save.alters_data = True django/trunk/tests/modeltests/signals/models.py
r6411 r7054 14 14 15 15 16 def pre_save_nokwargs_test(sender, instance): 17 print 'pre_save_nokwargs signal' 18 19 def post_save_nokwargs_test(sender, instance): 20 print 'post_save_nokwargs signal' 21 16 22 def pre_save_test(sender, instance, **kwargs): 17 23 print 'pre_save signal,', instance 24 if kwargs.get('raw'): 25 print 'Is raw' 18 26 19 27 def post_save_test(sender, instance, **kwargs): … … 24 32 else: 25 33 print 'Is updated' 34 if kwargs.get('raw'): 35 print 'Is raw' 26 36 27 37 def pre_delete_test(sender, instance, **kwargs): 28 38 print 'pre_delete signal,', instance 29 print 'instance.id is not None: %s' % (instance.id != None) 39 print 'instance.id is not None: %s' % (instance.id != None) 30 40 31 41 def post_delete_test(sender, instance, **kwargs): 32 42 print 'post_delete signal,', instance 33 print 'instance.id is None: %s' % (instance.id == None) 43 print 'instance.id is None: %s' % (instance.id == None) 34 44 35 45 __test__ = {'API_TESTS':""" 46 >>> dispatcher.connect(pre_save_nokwargs_test, signal=models.signals.pre_save) 47 >>> dispatcher.connect(post_save_nokwargs_test, signal=models.signals.post_save) 36 48 >>> dispatcher.connect(pre_save_test, signal=models.signals.pre_save) 37 49 >>> dispatcher.connect(post_save_test, signal=models.signals.post_save) … … 41 53 >>> p1 = Person(first_name='John', last_name='Smith') 42 54 >>> p1.save() 55 pre_save_nokwargs signal 43 56 pre_save signal, John Smith 57 post_save_nokwargs signal 44 58 post_save signal, John Smith 45 59 Is created … … 47 61 >>> p1.first_name = 'Tom' 48 62 >>> p1.save() 63 pre_save_nokwargs signal 49 64 pre_save signal, Tom Smith 65 post_save_nokwargs signal 50 66 post_save signal, Tom Smith 51 67 Is updated 68 69 >>> p1.save(raw=True) 70 pre_save_nokwargs signal 71 pre_save signal, Tom Smith 72 Is raw 73 post_save_nokwargs signal 74 post_save signal, Tom Smith 75 Is updated 76 Is raw 52 77 53 78 >>> p1.delete() … … 60 85 >>> p2.id = 99999 61 86 >>> p2.save() 87 pre_save_nokwargs signal 62 88 pre_save signal, James Jones 89 post_save_nokwargs signal 63 90 post_save signal, James Jones 64 91 Is created … … 66 93 >>> p2.id = 99998 67 94 >>> p2.save() 95 pre_save_nokwargs signal 68 96 pre_save signal, James Jones 97 post_save_nokwargs signal 69 98 post_save signal, James Jones 70 99 Is created … … 79 108 [<Person: James Jones>] 80 109 110 >>> dispatcher.disconnect(pre_save_nokwargs_test, signal=models.signals.pre_save) 111 >>> dispatcher.disconnect(post_save_nokwargs_test, signal=models.signals.post_save) 81 112 >>> dispatcher.disconnect(post_delete_test, signal=models.signals.post_delete) 82 113 >>> dispatcher.disconnect(pre_delete_test, signal=models.signals.pre_delete)
