Getting this error while migrating invalid literal for int() with base 10: ''

(django) PS C:\Users\mayank\Desktop\env\django\Scripts\website\website> py manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, hubofaccounts, sessions
Running migrations:
  Applying hubofaccounts.0006_remove_streviews_batch_remove_streviews_name_and_more...Traceback (most recent call last):
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\models\fields\__init__.py", line 1988, in get_prep_value
    return int(value)
ValueError: invalid literal for int() with base 10: ''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\mayank\Desktop\env\django\Scripts\website\website\manage.py", line 22, in <module>
    main()
  File "C:\Users\mayank\Desktop\env\django\Scripts\website\website\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line      
    utility.execute()
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\base.py", line 98, in wrapped
    res = handle_func(*args, **kwargs)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\core\management\commands\migrate.py", line 290, in handle
    post_migrate_state = executor.migrate(
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\migrations\executor.py", line 131, in migrate
    state = self._migrate_all_forwards(
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\migrations\executor.py", line 163, in _migrate_all_forwards
    state = self.apply_migration(
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\migrations\executor.py", line 248, in apply_migration
    state = migration.apply(state, schema_editor)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\migrations\migration.py", line 131, in apply
    operation.database_forwards(
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\migrations\operations\fields.py", line 108, in database_forwards       
    schema_editor.add_field(
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\backends\sqlite3\schema.py", line 381, in add_field
    self._remake_table(model, create_field=field)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\backends\sqlite3\schema.py", line 230, in _remake_table
    self.effective_default(create_field)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\backends\base\schema.py", line 410, in effective_default
    return field.get_db_prep_save(self._effective_default(field), self.connection)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\models\fields\__init__.py", line 910, in get_db_prep_save
    return self.get_db_prep_value(value, connection=connection, prepared=False)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\models\fields\__init__.py", line 2668, in get_db_prep_value
    value = self.get_prep_value(value)
  File "C:\Users\mayank\Desktop\env\django\lib\site-packages\django\db\models\fields\__init__.py", line 1990, in get_prep_value
    raise e.__class__(
ValueError: Field 'id' expected a number but got ''.

What are the migration you’re trying to apply, and the previous one?

It looks like you migrating from a CharField that allowed blank values to IntegerField

from django.db import models
from django.utils.timezone import now

Create your models here.

class contact(models.Model):
name = models.CharField(max_length=70)
email = models.CharField(max_length=70)
phone = models.CharField(max_length=12)
desc = models.TextField()

def __str__(self) :
    return self.name

class streviews(models.Model):
sno = models.AutoField(primary_key= True)
name = models.CharField(max_length=70)
batch = models.CharField(max_length=70)
review = models.TextField()
timestamp = models.DateTimeField(default= now)

def __str__(self) :
    return self.name + " - " + self.batch

And what about the migrations files?

This one: hubofaccounts.0006_remove_streviews_batch_remove_streviews_name_and_more

Generated by Django 4.0.5 on 2022-12-11 13:34

from django.db import migrations, models

class Migration(migrations.Migration):

dependencies = [
    ('hubofaccounts', '0005_streviews_batch_streviews_name'),
]

operations = [
    migrations.RemoveField(
        model_name='streviews',
        name='batch',
    ),
    migrations.RemoveField(
        model_name='streviews',
        name='name',
    ),
    migrations.RemoveField(
        model_name='streviews',
        name='review',
    ),
    migrations.RemoveField(
        model_name='streviews',
        name='sno',
    ),
    migrations.RemoveField(
        model_name='streviews',
        name='timestamp',
    ),
    migrations.AddField(
        model_name='streviews',
        name='Image',
        field=models.ImageField(blank=True, null=True, upload_to='image/'),
    ),
    migrations.AddField(
        model_name='streviews',
        name='id',
        field=models.BigAutoField(auto_created=True, default='', primary_key=True, serialize=False, verbose_name='ID'),
        preserve_default=False,
    ),
]

You’re getting this error because default='' Remove the default argument