I defined below model and getting
error : You are trying to add a non-nullable field 'user' to videodata without a default; we can't do that
models.py
class User(Model):
userID = models.IntegerField()
userName = models.CharField(max_length=40)
email = models.EmailField()
class Meta:
ordering = ['userName']
verbose_name = 'User MetaData'
verbose_name_plural = 'Users MetaData'
def __unicode__(self):
return str(self.userName)
class VideoData(Model):
video = models.CharField(max_length=40)
time = models.IntegerField()
user = models.ForeignKey(User, related_name='User')
class Meta:
verbose_name = 'User_Video MetaData'
Where i am doing wrong????
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>)
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!
Here is what I did to fix the same issue
Hope this helps. This solution will work everytime you face these kinds of error.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With