title: Can not assign None to Django DateTimeField()
body: <p>Can I judge this is a bug?
  DateTimeField is inherited from DateField and it can be an optional</p>
  
  <p>I have read:
  <a href="https://stackoverflow.com/questions/11351619/how-to-make-djangos-datetimefield-optional">How to make Django&#39;s DateTimeField optional?</a>
  <a href="https://stackoverflow.com/questions/16828315/how-can-i-make-my-model-fields-optional-in-django">How can I make my model fields optional in Django?</a></p>
  
  <p>models.py</p>
  
  <pre><code>class Circuit(SoftDeletionModel):
      ...
      created_datetime = models.DateTimeField(default=timezone.now)
      updated_datetime = models.DateTimeField(auto_now=True)
      expiry_datetime = models.DateTimeField(null=True, blank=True, default=None)
  </code></pre>
  
  <p>At terminal</p>
  
  <pre><code>$ python -B manage.py makemigrations --settings=config.settings.docker
  apps.circuits is ready
  apps.circuits_networkdevices is ready
  apps.core is ready
  apps.customers is ready
  apps.networkdevices is ready
  apps.networkscripts is ready
  apps.portal is ready
  apps.bod is ready
  apps.scheduler is ready
  You are trying to add a non-nullable field 'updated_datetime' to circuit without a default; we can't do that (the database needs something to populate existing rows).
  Please select a fix:
   1) Provide a one-off default now (will be set on all existing rows)
   2) Quit, and let me add a default in models.py
  Select an option: 1
  Please enter the default value now, as valid Python
  The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now()
  &gt;&gt;&gt; None
  Migrations for 'circuits':
    0022_auto_20161102_1714.py:
      - Add field expiry_datetime to circuit
      - Add field updated_datetime to circuit
  </code></pre>
  
  <p>migration_file.py</p>
  
  <pre><code># -*- coding: utf-8 -*-
  # Generated by Django 1.9.9 on 2016-11-02 10:14
  from __future__ import unicode_literals
  
  from django.db import migrations, models
  
  
  class Migration(migrations.Migration):
  
      dependencies = [
          ('circuits', '0021_auto_20161102_1653'),
      ]
  
      operations = [
          migrations.AddField(
              model_name='circuit',
              name='expiry_datetime',
              field=models.DateTimeField(blank=True, default=None, null=True),
          ),
          migrations.AddField(
              model_name='circuit',
              name='updated_datetime',
              field=models.DateTimeField(auto_now=True, default=None),
              preserve_default=False,
          ),
      ]
  </code></pre>
  
  <p>Error Django:</p>
  
  <pre><code>django.db.utils.IntegrityError: column "updated_datetime" contains null values
  </code></pre>
  
  <p>Error Postgres:</p>
  
  <pre><code>postgres_1       | ERROR:  column "expiry_datetime" contains null values
  postgres_1       | STATEMENT:  ALTER TABLE "circuits_circuit" ADD COLUMN "expiry_datetime" timestamp with time zone NOT NULL
  </code></pre>
  
  <p>Spec:</p>
  
  <pre><code>In [2]: django.VERSION
  Out[2]: (1, 9, 9, 'final', 0)
  
  $ python --version
  Python 3.5.1
  
  &gt; SELECT version();
  +------------------------------------------------------------------------------------------+
  | version                                                                                  |
  |------------------------------------------------------------------------------------------|
  | PostgreSQL 9.5.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit |
  +------------------------------------------------------------------------------------------+
  </code></pre>