title: Where should signal handlers live in a django project?
body: <p>I have just started implementing signal listeners in a django project.  While I understand what they are and how to use them.  I am having a hard time figuring out where I should put them.  The documentation from the django site has this to say:</p>
  
  <blockquote>
    <p><a href="http://docs.djangoproject.com/en/dev/topics/signals/#connecting-receiver-functions" rel="noreferrer">Where should this code live?</a></p>
    
    <p>You can put signal handling and
    registration code anywhere you like.
    However, you'll need to make sure that
    the module it's in gets imported early
    on so that the signal handling gets
    registered before any signals need to
    be sent. This makes your app's
    models.py a good place to put
    registration of signal handlers.</p>
  </blockquote>
  
  <p>While its a good suggestion, having non model classes or methods in my models.py just rubs me the wrong way.</p>
  
  <p>So then, what is the best practice/rule for storing and registering signal handlers? </p>