Django.db.utils.OperationalError: нет такой таблицы: MainApp_user, когда я пытаюсь создать суперпользователя
Я делаю веб-приложение, и почти в конце процесса разработки решил настроить модель пользователя, чтобы сделать страницу профиля со многими другими данными. Недавно я нашел видео, где объясняется пример из документации django, и я сделал тот же код, что и там, но сначала я удалил свой файл db.sqlite3 и теперь, когда я пытаюсь создать суперпользователя, я всегда получаю следующую ошибку:
django.db.utils.OperationalError: no such table: MainApp_user
Вот мой models.py:
class MyUserManager(BaseUserManager):
def create_user(self, username, password):
if not username:
raise ValueError("Mailname field is empty")
if not password:
raise ValueError("You have to set password")
user = self.model(
username=username,
)
user.set_password(password)
user.save(using=self._db)
return user
class User(AbstractBaseUser):
username = models.CharField(max_length=30, unique=True)
password = models.CharField(max_length=64)
name = models.CharField(max_length=30, blank=True)
surname = models.CharField(max_length=30, blank=True)
avatar = models.ImageField(width_field=512, height_field=512)
email_link = models.CharField(max_length=64, blank=True, null=True)
bio = models.CharField(max_length=512, blank=True, null=True)
registered = models.DateField(auto_now_add=True)
USERNAME_FIELD = "username"
REQUIRED_FIELDS = ['password']
objects = MyUserManager()
def __str__(self):
return self.username
Также я добавил следующую переменную в settings.py:
AUTH_USER_MODEL = "MainApp.User"
Почему возникает эта ошибка и как ее решить, помогите пожалуйста.
***Объективно, я сделал миграции в базу данных
Я нашел решение. В моем случае, когда я удалил файл db.sqlite3, я также удалил папку "migrations" в приложении. Конечно, я создал ее снова, но проблема была в том, что я забыл добавить init.py в папку migrations. И django после применения миграций сделал только системные таблицы в базе данных (auth_users, contenttypes и другие), мои собственные модели он не сохранил. Так что если вы когда-нибудь столкнетесь с подобной проблемой, помните о init.py в папке migrations.