#9318: "Virtual" behaviour for signal dispatcher and model inheritance
-------------------------------------+--------------------------------------
          Reporter:  svetlyak40wt    |         Owner:  nobody                   
           
            Status:  new             |     Milestone:                           
           
         Component:  Core framework  |       Version:  1.0                      
           
        Resolution:                  |      Keywords:  model inheritance, 
signals, dispatch
             Stage:  Accepted        |     Has_patch:  1                        
           
        Needs_docs:  0               |   Needs_tests:  0                        
           
Needs_better_patch:  0               |  
-------------------------------------+--------------------------------------
Comment (by telenieko):

 I guess you are talking about:
 {{{
 #!python
  from django.db import models

  class Parent(models.Model):
     """
     >>> p = Parent(name="Hola")
     >>> p.save()
     Hello!
     """
     name = models.CharField(max_length=10, blank=True, default='')

  class Child(Parent):
     """
     >>> p = Child(name="Hola ahora")
     >>> p.save()
     Hello!
     """
     childname = models.CharField(max_length=10, blank=True, default='')

  from django.db.models.signals import post_init
  from django.db.models.signals import post_save

  def say_hello(sender, *args, **kwargs):
      print "Hello!"
  post_save.connect(say_hello, sender=Parent)
 }}}

 ?? The doctest that fails (the one in Child) should be considered a bug.

 One would really expect that it's signal handlers still fire on a class
 althought having been inherited (I'd guess that's how most languages
 handle this).

 A side, reading the docs about pre_init and post_init, you'd expect that
 if you Model's __init__() method is run, handlers attached to this should
 also be fired, which isn't the case.

 So, in brief, handlers attached to a Model should be fired when signals
 get sent from Child Models. Having it disabled by default can confuse
 people, but maybe we could disable this until 2.0 :)

-- 
Ticket URL: <http://code.djangoproject.com/ticket/9318#comment:2>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to