mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #10672 -- Altered save_base to ensure that proxy models send a post_save signal.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10954 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
6cd37e0a1f
commit
81aedbd157
2 changed files with 46 additions and 12 deletions
|
@ -259,6 +259,33 @@ FieldError: Proxy model 'NoNewFields' contains model fields.
|
|||
>>> OtherPerson._default_manager.all()
|
||||
[<OtherPerson: barney>, <OtherPerson: wilma>]
|
||||
|
||||
# Test save signals for proxy models
|
||||
>>> from django.db.models import signals
|
||||
>>> def make_handler(model, event):
|
||||
... def _handler(*args, **kwargs):
|
||||
... print u"%s %s save" % (model, event)
|
||||
... return _handler
|
||||
>>> h1 = make_handler('MyPerson', 'pre')
|
||||
>>> h2 = make_handler('MyPerson', 'post')
|
||||
>>> h3 = make_handler('Person', 'pre')
|
||||
>>> h4 = make_handler('Person', 'post')
|
||||
>>> signals.pre_save.connect(h1, sender=MyPerson)
|
||||
>>> signals.post_save.connect(h2, sender=MyPerson)
|
||||
>>> signals.pre_save.connect(h3, sender=Person)
|
||||
>>> signals.post_save.connect(h4, sender=Person)
|
||||
>>> dino = MyPerson.objects.create(name=u"dino")
|
||||
MyPerson pre save
|
||||
MyPerson post save
|
||||
|
||||
# Test save signals for proxy proxy models
|
||||
>>> h5 = make_handler('MyPersonProxy', 'pre')
|
||||
>>> h6 = make_handler('MyPersonProxy', 'post')
|
||||
>>> signals.pre_save.connect(h5, sender=MyPersonProxy)
|
||||
>>> signals.post_save.connect(h6, sender=MyPersonProxy)
|
||||
>>> dino = MyPersonProxy.objects.create(name=u"pebbles")
|
||||
MyPersonProxy pre save
|
||||
MyPersonProxy post save
|
||||
|
||||
# A proxy has the same content type as the model it is proxying for (at the
|
||||
# storage level, it is meant to be essentially indistinguishable).
|
||||
>>> ctype = ContentType.objects.get_for_model
|
||||
|
@ -266,7 +293,7 @@ FieldError: Proxy model 'NoNewFields' contains model fields.
|
|||
True
|
||||
|
||||
>>> MyPersonProxy.objects.all()
|
||||
[<MyPersonProxy: barney>, <MyPersonProxy: fred>]
|
||||
[<MyPersonProxy: barney>, <MyPersonProxy: dino>, <MyPersonProxy: fred>, <MyPersonProxy: pebbles>]
|
||||
|
||||
>>> u = User.objects.create(name='Bruce')
|
||||
>>> User.objects.all()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue