Skip to content
Advertisement

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

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????

Advertisement

Answer

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>)
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement