title: Django, custom managers, base_manager_name and the failure to save model
body: <p>I'll simplify my problem:</p>
  <p>In my project I have a <code>Person</code> model and that person has an age. I changed the default manager applied to <code>Person</code> using <code>base_manager_name</code> to my version of <code>objects</code>.</p>
  <p>Person` has this:</p>
  <pre><code>objects = MySpecialAgeFilterManager()
  objects_all = models.Manager()
  </code></pre>
  <p>So, when I ask for <code>Person.objects.all()</code> I will get only people between the ages of 20 and 30. Don't ask me why-- it's just for the sake of this question..</p>
  <p>I have a certain <code>Person</code> instance with the age of 10. That person will not show up on <code>Person.objects.all()</code> -- however it will be included in <code>Person.objects_all.all()</code></p>
  <p>My problem is this.</p>
  <pre><code>p = Person.objects_all.filter(age=10).first()    # works, I get my person. 
  p.age = 20                                       # trying to bring him into the light....
  p.save()                                         # CRASH!!! 
  </code></pre>
  <p>The crash claims the <code>pk</code> for <code>p</code> creates a duplicate violation on the database. It's as if it's trying to save it with the <code>objects</code> scope in mind, and not the <code>objects_all</code> scope I retrieved that person with. In the <code>objects</code> context it doesn't exist so it tries to save... but the database has that PK already in use. The database doesn't care about Model Manager scopes....</p>
  <p>How do I resolve this?</p>