Error : "You are trying to add a non-nullable field"

Here is what I did to fix the same issue

  1. Comment the foreign key reference in videodata and run the makemigrations and migrate
  2. Add the model in admins.py and make a new entry in table
  3. Now uncomment the foreign key reference and provide a default=1 .Run make migrations and migrate
  4. Remove the default=1 in foreign key field.

Hope this helps. This solution will work everytime you face these kinds of error.


I have run into the same problem with my OneToOneField. And, what I did was to delete all the migration files (which are under the directory of migrations under your app), and ran:

python manage.py makemigrations

and

python manage.py migrate

I don't know why, but it worked in my case. It won't hurt you to try what I wrote above.

Good luck!


As the error says, your user field on VideoData is not allowing nulls, so you either need to give it a default user or allow nulls. Easiest way is to allow nulls.

user = models.ForeignKey(User, related_name='User', null=True)

or have a default user

user = models.ForeignKey(User, related_name='User', default=<have your default user id here>)

Tags:

Python

Django