title: Why does values query set not match model attributes
body: <p>Using django 1.7, python 3.4, and postgres 9.4.</p>
  
  <p>When i query a model's attribute directly it returns the proper value.
  When i query the same model using .values(), it returns improper value.</p>
  
  <p>For example:</p>
  
  <pre><code>&gt;&gt;&gt;bomitem = self.itemproduction.billOfMaterials()
  &gt;&gt;&gt;for x in bomitem:
  &gt;&gt;&gt;    x.ratio
  &gt;&gt;&gt;&gt;50
  &gt;&gt;&gt;&gt;20
  &gt;&gt;&gt;&gt;bomitem.values('ratio')
  &gt;&gt;&gt;&gt;[{'ratio': 5}, {'ratio': 2}]
  </code></pre>
  
  <p>Self and itemproduction are a OneToOneField relation.</p>
  
  <p>ItemProduction.billOfMaterials() overrides Product.billOfMaterials()</p>
  
  <pre><code>def billOfMaterials(self):
      bom = self.inventoryItem.product.billOfMaterials()
      for x in bom:
          x.ratio = x.ratio * self.qty
      return bom 
  </code></pre>
  
  <p>This basically takes a Product's Bill of Materials (recipe list) and figures the expected Bill of Materials for Production of n amount of a Product. 
  Also, when i try to filter on bomitem, the resulting queryset has same improper values.</p>
  
  <pre><code>&gt;&gt;&gt;&gt;bomitem.get(component=x)
  &gt;&gt;&gt;&lt;BOM: Product One: 5&gt;
  </code></pre>
  
  <p>Why this erratic behavior?</p>