title: Why do different Django Models with JSONFields have the same values?
body: <p>I've got a model with a JSONField (a Postgres only field):</p>
  
  <p>models.py:</p>
  
  <pre><code>from django.db import models
  from django.contrib.postgres.fields import JSONField
  
  class Mod(models.Model):
      data = JSONField(default={ 'name':'Model' })
  </code></pre>
  
  <p>So I create 2 models – <code>./manage.py shell</code>:</p>
  
  <pre><code>&gt;&gt;&gt; from m3d.models import Mod
  &gt;&gt;&gt; m1 = Mod()
  &gt;&gt;&gt; m1.save()
  &gt;&gt;&gt; m2 = Mod()
  &gt;&gt;&gt; m2.data['name'] = 'Model 2'
  &gt;&gt;&gt; m2.save()
  </code></pre>
  
  <p>But they have the same <code>data['name']</code> values:</p>
  
  <pre><code>&gt;&gt;&gt; m1.data['name']
  'Model 2'
  &gt;&gt;&gt; m2.data['name']
  'Model 2'
  </code></pre>
  
  <p>Note that the values are <em>different</em> in the database:</p>
  
  <pre><code>&gt;&gt;&gt; m1a = Mod.objects.get(pk=m1.pk) # get m1 data from db
  &gt;&gt;&gt; m1a.data['name']
  'Model'
  &gt;&gt;&gt; m2.data['name']
  'Model 2'
  </code></pre>
  
  <p>but the variable <code>m1</code> still has the value <code>Model 2</code>.</p>
  
  <p>Am I missing something? Is this some sort behavior I'll need to work around?</p>
  
  <p>FYI: Using Django 2.0.1</p>