How to set NULL for IntegerField instead of setting 0?

jyli7 picture jyli7 · May 13, 2013 · Viewed 23.4k times · Source

I'm uploading some data from an excel file using xlrd and turning that data into models (with mainly IntegerField values) in Django. My excel file has a bunch of missing data. Unfortunately, these missing data are converted to the value of 0 in my models, instead of NULL. This means that when my Person model doesn't have an age, that age gets recorded as 0, instead of as NULL.

What's the best way to change this? I've tried doing this:

age = models.IntegerField(blank=True, null=True)

But the blank fields still get set to 0 by default.

Answer

Shwetabh Sharan picture Shwetabh Sharan · May 14, 2013

Instead of using

age = models.IntegerField()

use

age = models.IntegerField(blank=True, null=True)

When we specify

blank=True, null=True

it will allow you to store null in that column