Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django: Can the value of ForeignKey be None?

I have a model called SimplePage in which I have this line:

category = models.ForeignKey('Category', related_name='items',
                             blank=True, null=True)

I assumed this will allow me to have SimplePage instances that do not have a Category.

But for some reason, when I try to create a SimplePage in the Admin with no Category, I get:

IntegrityError at /admin/sitehelpers/simplepage/add/
sitehelpers_simplepage.category_id may not be NULL

What is this?

like image 495
Ram Rachum Avatar asked Jan 22 '23 14:01

Ram Rachum


1 Answers

Could it possibly be that you added the null=True attribute after doing the syncdb for that model? Django won't change database tables, only create them. Check in your database if NULL is allowed for that column and change it manually.

Edit: starting with Django 1.7, this answer and the comments are not really valid anymore, since Django gained a fully featured migration framework.

like image 125
Benjamin Wohlwend Avatar answered Jan 27 '23 20:01

Benjamin Wohlwend