title: Django signals not working properly
body: <p>I'm trying to setup a signal so that when a valid form is saved, a function is ran to carry out a related task.</p>
  
  <p>My app structure is as follows;</p>
  
  <pre><code>- events
      - helpers
          - __init__.py
          - status.py
      - models
          - signals
              - __init__.py
              - event.py
          - __init__.py
          - event.py
          - status.py
      - views
          - __init__.py
          - event.py
  </code></pre>
  
  <p>I believe signals need to be imported as early as possible, before models, so at the top of <code>models/__init__.py</code> I've got <code>from .signals import *</code>.</p>
  
  <pre><code># views/event.py
  class AddEventView(CreateView):
      """
      View for adding an Event.
      """
      model = Event
      form_class = EventForm
      success_url = reverse_lazy('events:all_events')
  
      def form_valid(self, form):
          self.object = form.save()
  
          signals.event_status.send(
              sender=None, request=self.request, event=self.object, status=None
          ) # Should the sender be self.object?
  
          return super(AddEventView, self).form_valid(form)
  
  # signals/event.py
  from django.dispatch import Signal
  event_status = Signal(providing_args=["request", "event", "status"])
  
  # helpers/status.py
  from ..models import Status, StatusHistory
  from ..models.signals import event_status
  
  
  def create_status(sender, **kwargs):
      """
      Create a status for a given event.
      """
      event = kwargs['event']
      status = kwargs['status']
      creator = User.objects.get(pk=event.creator)
      try:
          current_status = StatusHistory.objects.filter(
              event=event).order_by('timestamp')[0]
      except IndexError:
          # Not sure what we're doing here yet.
          pass
      if not status:
          status = Status.objects.get(description=_("Submitted"))
  
      statushistory = StatusHistory.create(
          event=event,
          event_status=status,
          user=creator
      )
      statushistory.save()
  
  event_status.connect(create_status)
  </code></pre>
  
  <p>I'm running the debug server in Pycharm with a break point in the <code>create_status()</code> function &amp; it's never getting hit.</p>
  
  <p>Have I implemented this wrong?</p>