title: Django ManyToMany Field add() not working
body: <p>I have a field in my Django model defined as:</p>
  
  <pre><code>def get_field(**kwargs):
      kwargs.setdefault('related_name', '+')
      return models.ManyToManyField('app.MyOtherModel', **kwargs)
  
  class MyModel(models.Model):
      MY_FIELD = 'A label for my field'
      my_field = get_field() # wrote function to DRY creation of fields
  </code></pre>
  
  <p>But whenever I try to add something to the field, it doesn't work:</p>
  
  <pre><code>foo = MyOtherModel.objects.create(...)
  m = MyModel.objects.get(...)
  m.my_field.add(foo)
  m.my_field.all() # returns []
  </code></pre>
  
  <p>Doing some digging into Django source code, the <code>ManyRelatedManager.add()</code> function (in <code>django/db/models/fields/related.py</code>) works correctly, with <code>self.through.objects.all()</code> returning the right object at the end of the function, but <code>self.all()</code> doesn't, leading me to think the problem is in <code>get_queryset()</code>:</p>
  
  <pre><code># printing self.through.objects.all() @ related.py:978
  [&lt;MyModel_myothermodel: MyModel_myothermodel object&gt;]
  
  # printing self.all() @ related.py:978
  []
  </code></pre>
  
  <p>Is the problem in the fact that I have both <code>MY_FIELD</code> and <code>my_field</code> defined in <code>MyModel</code>? Or maybe in how I generate the <code>ManyToManyField</code>? Or is there some other issue?</p>
  
  <p><strong>UPDATE</strong>: The issue is in <code>related.py</code> in the <code>get_queryset</code> function. <code>self.core_filters</code> is set to <code>{'+__year': 2015}</code>, however, when I query <code>qs.values('+__year')</code>, I get <code>{'+__year': None}</code>. (<code>year</code> is another field in the model)</p>