Ошибка: нет такой таблицы при расширении Abstract User Model
Я хотел расширить базовую абстрактную модель пользователя в Django, чтобы иметь некоторые другие поля:
class Student(AbstractUser):
birth = models.DateField(default=datetime.date.today)
street = models.CharField(max_length=20)
street_number = models.IntegerField(validators=[MinValueValidator(0), MaxValueValidator(99)])
city = models.CharField(max_length=20)
province = models.CharField(max_length=20)
code = models.IntegerField(validators=[MinValueValidator(0, MaxValueValidator(9999))])
address = str(street) + str(street_number) + str(city) + str(code) + str(province)
def __str__(self):
return f'Adresse: {self.address}'
Я добавил это в файл settings.py:
AUTH_USER_MODEL = 'mainApp.Student'
Но при попытке загрузить /admin/ я получаю ошибку, говорящую, что нет такой таблицы "Student". Я выполнил все миграции, используя:
python manage.py makemigrations mainApp
python manage.py migrate mainApp
Ошибка:
OperationalError at /admin/
no such table: mainApp_student
Если вам нужна дополнительная информация, пожалуйста, комментируйте!
Попробуйте запустить в первый раз:
python manage.py makemigrations
python manage.py migrate
Не помещать имя приложения в процесс миграции
Вы не можете определить "адрес" таким образом. Столбец базы данных не предназначен для конкатенации строк других столбцов, а также для каких-либо вычислений. Это может привести к ошибке.