title: How Django model field take default value if field is None
body: <p>I create a django model </p>
  
  <pre><code>class Apps(models.Model):
      name = models.CharField(max_length=300, default="name")
      package_name = models.CharField(max_length=255, default="package_name")
  </code></pre>
  
  <p>and <strong>i may or may not receive both (name, package_name)</strong></p>
  
  <p>my insert query function</p>
  
  <pre><code>def func(data):
      try:
         kwargs = dict(name=data.get('name'),
                       package_name=data.get('package_name'))
         app = Apps.objects.get(**kwargs)
      except:
         app = Apps(**kwargs)
         app.save()
      return app
  </code></pre>
  
  <p><strong>My Problem is</strong></p>
  
  <p>when <code>kwargs = {"name" : None, "package_name": "pkg"}</code> than it take default value as specified in model field corresponding to name (because it is <code>None</code> in <code>kwargs</code>)</p>