title: Django - null value in column violates not-null constraint in Django Admin
body: <p>I'm facing an Integrity Error in Django admin while trying to add data to the database. </p>
  
  <p>The traceback is as follows:</p>
  
  <pre><code>  Environment:
  
  
    Request Method: POST
    Request URL: http://127.0.0.1:8000/site/admin/SilverInningsHelpline/classified/add/
  
    Django Version: 1.6.4
    Python Version: 2.7.3
    Installed Applications:
    ('django_admin_bootstrapped.bootstrap3',
     'django_admin_bootstrapped',
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'SilverInningsHelpline',
     'south')
    Installed Middleware:
    ('django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware')
  
  
    Traceback:
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
      432.                 return self.admin_site.admin_view(view)(*args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
      99.                     response = view_func(request, *args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
      52.         response = view_func(request, *args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
      198.             return view(request, *args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
      29.             return bound_func(*args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
      99.                     response = view_func(request, *args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
      25.                 return func(self, *args2, **kwargs2)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/transaction.py" in inner
      371.                 return func(*args, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view
      1131.                 self.save_model(request, new_object, form, False)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in save_model
      860.         obj.save()
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/base.py" in save
      545.                        force_update=force_update, update_fields=update_fields)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
      573.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
      654.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
      687.                                using=using, raw=raw)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/manager.py" in _insert
      232.         return insert_query(self.model, objs, fields, **kwargs)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/query.py" in insert_query
      1511.     return query.get_compiler(using=using).execute_sql(return_id)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
      903.             cursor.execute(sql, params)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
      69.             return super(CursorDebugWrapper, self).execute(sql, params)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
      53.                 return self.cursor.execute(sql, params)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/utils.py" in __exit__
      99.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
    File "/home/siddharth/SilverInnings/venv/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
      53.                 return self.cursor.execute(sql, params)
  
    Exception Type: IntegrityError at /site/admin/SilverInningsHelpline/classified/add/
    Exception Value: null value in column "category_id" violates not-null constraint
  </code></pre>
  
  <p>My models are as follows:</p>
  
  <pre><code>class Categories(models.Model):
      id = models.AutoField(primary_key=True)
      type = models.CharField(max_length=300)
  
      def __unicode__(self):
          return self.type
  
  
  class Subcategory(models.Model):
      id = models.AutoField(primary_key=True)
      parent = models.ForeignKey(Categories)
      name = models.CharField(max_length=300)
  
      def __unicode__(self):
          return self.name
  
  
  
  class Classified(models.Model):
      id = models.AutoField(primary_key=True)
      name = models.CharField(max_length=256)
      contact_person = models.CharField(max_length=300)
      email = models.CharField(max_length=100)
      address = models.ForeignKey(Address)
      subcategory = models.ForeignKey(Subcategory)
      phone_number = models.BigIntegerField(max_length=20, default=0)
      image = models.ImageField(blank=True, upload_to='dynamic/img/')
      NO = 'NO'
      YES = 'YES'
      APPROVAL = ((NO, 'no'), (YES, 'yes'))
      active = models.CharField(choices=APPROVAL, default=NO, max_length=3)
      verified = models.CharField(choices=APPROVAL, default=NO, max_length=3)
  
      def __unicode__(self):
          return self.name
  </code></pre>
  
  <p>The problems arise when I try to make an entry to the Classified table from Admin. </p>
  
  <p>Tried solution from here:</p>
  
  <p><a href="https://stackoverflow.com/questions/16603657/integrityerror-null-value-in-column-city-id-violates-not-null-constraint">IntegrityError: null value in column &quot;city_id &quot; violates not-null constraint</a> as it was the closest to my problem. My tables looked like this after trying the solution on that link:</p>
  
  <pre><code>class Categories(models.Model):
      id = models.AutoField(primary_key=True)
      type = models.CharField(max_length=300, unique=True, default='All', null=True)
  
      def __unicode__(self):
          return self.type
  
  
  class Subcategory(models.Model):
      id = models.AutoField(primary_key=True)
      parent = models.ForeignKey(Categories, null=True, blank=True, default='All')
      name = models.CharField(max_length=300)
  
      def __unicode__(self):
          return self.name
  
  
  
  class Classified(models.Model):
      id = models.AutoField(primary_key=True)
      name = models.CharField(max_length=256)
      contact_person = models.CharField(max_length=300)
      email = models.CharField(max_length=100)
      address = models.ForeignKey(Address)
      subcategory = models.ForeignKey(Subcategory)
      phone_number = models.BigIntegerField(max_length=20, default=0)
      image = models.ImageField(blank=True, upload_to='dynamic/img/')
      NO = 'NO'
      YES = 'YES'
      APPROVAL = ((NO, 'no'), (YES, 'yes'))
      active = models.CharField(choices=APPROVAL, default=NO, max_length=3)
      verified = models.CharField(choices=APPROVAL, default=NO, max_length=3)
  
      def __unicode__(self):
          return self.name
  </code></pre>
  
  <p>But this did not solve my problem and now I'm stuck. </p>