title: EmbeddedModelField in custom user model
body: <p>I'm using django-mongodb-engine to make a site.</p>
  
  <p>I have a custom user model that looks like this:</p>
  
  <pre><code>class User(AbstractUser):
      trigrama = models.CharField(max_length=3, unique=True)
      external_email = models.EmailField(unique=True)
      phone_number = models.CharField(max_length=20, unique=True)
  
      AbstractUser._meta.get_field_by_name('email')[0]._unique=True
  
      USERNAME_FIELD = 'email'
      REQUIRED_FIELDS = [
          'first_name', 'last_name', 'trigrama',
          'external_email', 'phone_number', 'username'
      ]
  </code></pre>
  
  <p>It works just fine, but then I tried adding an embedded document to the user model:</p>
  
  <pre><code>    permissions = EmbeddedModelField('Permission')
  </code></pre>
  
  <p><code>Permission</code> is a class that looks like this:</p>
  
  <pre><code>class Permission(models.Model):
      computers = ListField(EmbeddedModelField('Computer'))
      projects = ListField(EmbeddedModelField('Project'))
      scripts = ListField(EmbeddedModelField('Script'))
  </code></pre>
  
  <p>Now when I try to crate a user in the shell using <code>User.objects.create()</code> I get the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;console&gt;", line 1, in &lt;module&gt;
    File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 149, in create
      return self.get_query_set().create(**kwargs)
    File "C:\Python27\lib\site-packages\django\db\models\query.py", line 416, in create
      obj.save(force_insert=True, using=self.db)
    File "C:\Python27\lib\site-packages\django\db\models\base.py", line 548, in save
      force_update=force_update, update_fields=update_fields)
    File "C:\Python27\lib\site-packages\django\db\models\base.py", line 668, in save_base
      result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
    File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 215, in _insert
      return insert_query(self.model, objs, fields, **kwargs)
    File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1675, in insert_query
      return query.get_compiler(using=using).execute_sql(return_id)
    File "C:\Python27\lib\site-packages\djangotoolbox\db\basecompiler.py", line 583, in execute_sql
      "field) to None!" % field.name)
  IntegrityError: You can't set permissions (a non-nullable field) to None!
  </code></pre>
  
  <p>I tried setting the default to <code>Permission()</code> using:</p>
  
  <pre><code>permissions = EmbeddedModelField('Permission', default=Permission())
  </code></pre>
  
  <p>but then I get the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;console&gt;", line 1, in &lt;module&gt;
    File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 149, in create
      return self.get_query_set().create(**kwargs)
    File "C:\Python27\lib\site-packages\django\db\models\query.py", line 416, in create
      obj.save(force_insert=True, using=self.db)
    File "C:\Python27\lib\site-packages\django\db\models\base.py", line 548, in save
      force_update=force_update, update_fields=update_fields)
    File "C:\Python27\lib\site-packages\django\db\models\base.py", line 668, in save_base
      result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
    File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 215, in _insert
      return insert_query(self.model, objs, fields, **kwargs)
    File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1675, in insert_query
      return query.get_compiler(using=using).execute_sql(return_id)
    File "C:\Python27\lib\site-packages\djangotoolbox\db\basecompiler.py", line 579, in execute_sql
      connection=self.connection
    File "C:\Python27\lib\site-packages\djangotoolbox\fields.py", line 364, in get_db_prep_save
      (embedded_model, type(embedded_instance)))
  TypeError: Expected instance of type &lt;class 'users.models.Permission'&gt;, not &lt;type 'unicode'&gt;.
  </code></pre>
  
  <p>So how should I go about adding an embedded document to the custom user model?</p>
  
  <p>P.S.
  If I type <code>Permission()</code> in the shell it instantiates just fine, returning a <code>Permission object</code> and not a unicode.</p>