title: Django error 'Signal' object has no attribute 'save'
body: <p>I've been struggling with this problem for 5 hours and I have a feeling it's a simple solution that I'm just overlooking.</p>
  
  <p>I'm trying to tie in a third party module (<a href="http://github.com/justquick/django-activity-stream/blob/master/README.rst" rel="nofollow noreferrer">Django Activity Stream</a>) that uses a series of senders and receivers to post data about user activity to a database table. Everything is set up and installed correctly, but I get a <code>'Signal' Object has No Attribute 'Save'</code> error when I try to run it.</p>
  
  <p>I suspect the problem is in my syntax somewhere. I'm just getting started with Signals, so am probably overlooking something a veteran will spot immediately.</p>
  
  <p>In <code>views.py</code> I have:</p>
  
  <pre><code>from django.db.models.signals import pre_save
  from actstream import action    ##This is the third-party app
  from models import Bird
  
  def my_handler(sender, **kwargs):
   action.save(sender, verb='was saved')
   #return HttpResponse("Working Great")
  
  pre_save.connect(my_handler, sender=Bird)
  
  def animal(request):
   animal = Bird()
   animal.name = "Douglas"
   animal.save()
  </code></pre>
  
  <p>The Django Activity Stream app has this <code>signals.py</code> file:</p>
  
  <pre><code>from django.dispatch import Signal
  
  action = Signal(providing_args=['actor','verb','target','description','timestamp'])
  </code></pre>
  
  <p>And then this <code>models.py</code> file:</p>
  
  <pre><code>from datetime import datetime
  from operator import or_
  from django.db import models
  from django.db.models.query import QuerySet
  from django.core.urlresolvers import reverse
  from django.utils.translation import ugettext_lazy as _
  from django.utils.timesince import timesince as timesince_
  from django.contrib.contenttypes import generic
  from django.contrib.contenttypes.models import ContentType
  from django.contrib.auth.models import User
  from actstream import action
  ...
  def action_handler(verb, target=None, **kwargs):
      actor = kwargs.pop('sender')
      kwargs.pop('signal', None)
      action = Action(actor_content_type=ContentType.objects.get_for_model(actor),
                      actor_object_id=actor.pk,
                      verb=unicode(verb),
                      public=bool(kwargs.pop('public', True)),
                      description=kwargs.pop('description', None),
                      timestamp=kwargs.pop('timestamp', datetime.now()))
      if target:
          action.target_object_id=target.pk
          action.target_content_type=ContentType.objects.get_for_model(target)
  
      action.save()
  
  action.connect(action_handler, dispatch_uid="actstream.models") 
  </code></pre>