title: How can I create a django model instance with deferred fields without hitting the database?
body: <p>Say I have some fields of a row of a django Model that I know exists in the database, but don't have them encapsulated in a Model instance. Is there any easy way for me to wrap them in a Model instance, without doing an extra DB query, and end with an instance that has those fields populated but all other fields deferred?</p>
  
  <p>So say I have model:</p>
  
  <pre><code>from django.db.models import CharField, IntegerField, Model
  
  class Person(Model):
      name = CharField(max_length=20)
      age = IntegerField(default=10)
  </code></pre>
  
  <p>And I have a dictionary:</p>
  
  <pre><code>raw_person = {'id': 3, 'name': 'Alice'}
  </code></pre>
  
  <p>And I want to end with a model instance <em>without another database query</em>:</p>
  
  <pre><code>alice = Model(id=3, name='Alice', age=&lt;deferred&gt;)
  </code></pre>
  
  <p>such that doing:</p>
  
  <pre><code>alice.name
  </code></pre>
  
  <p>is immediate, but</p>
  
  <pre><code>alice.age
  </code></pre>
  
  <p>would require another query to the database to get the age for <code>alice</code>.</p>
  
  <p>Obviously (?) I can't just do:</p>
  
  <pre><code>alice = Model(id=3, name='Alice')
  </code></pre>
  
  <p>Because that would set <code>age = 10</code> since that's the default on the field, but that is probably not Alice's actual age.</p>
  
  <p>Any ideas?</p>