title: Using Django's m2m_changed to modify what is being saved pre_add
body: <p>I am not very familiar with Django's signals and could use some help.</p>
  
  <p>How do I modified the pk_set before the instance is saved?  Do I have to return something to the signal caller (like the <code>kwargs</code>)?  Or do I save the <code>instance</code> myself?</p>
  
  <p>As a simplified example: I wanted to ensure the Category with <code>pk=1</code> is included with all my Videos when they are saved. How would I do that with <code>m2m_changed</code>?</p>
  
  <pre><code>class Video(models.Model):
      category = models.ManyToManyField('Category')
  
  def video_category_changed(sender, **kwargs):
      action = kwargs.pop('action', None)
      pk_set = kwargs.pop('pk_set', None)
      instance = kwargs.pop('instance', None)
  
      if action == "pre_add":
          if 1 not in pk_set:
              pk_set.update( [ 1 ] )  # adding this to the set
              # do something else?
              # profit?
  
  m2m_changed.connect( video_category_changed, sender=Video.category.through )
  </code></pre>