hello guys I'm doing a django tutorial and i missed a change the instructor did in models.py so i fix it but when trying to make the migration to the db it gives me a code that I don't understand or i don't know what to do, here is what it says:
(tonyto) PS E:\web-dev\Python\Django1\myappito> python manage.py makemigrations
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
they way it was
name: models.CharField(max_length=100) details: models.CharField(max_length=500)
and this is how i update it
name: models.CharField(max_length=100) details: models.CharField(max_length=500)
thank you in advance.
delete the latest file created in the migration folder and modify your model to be
'''
name = models.CharField(max_length=100,null=True)
details = models.CharField(max_length=500, null=True)
'''
then run the migration again
python manage.py makemigration python manage.py migrate then go back to model again and remove null from each field and run python manage.py makemigration python manage.py migrate
This was caused because you're trying to migrate a model field that cannot be null, but since it cannot be null, it needs a default value so that django can replace all the existing rows with the null value of that field.
You have two options:
Provide the default by hand, and the django it's going to replace all the null values of that field with this
Set a default value in the model, example:
number = models.IntegerField(default=1)
string = models.CharField(default='')