Django 3 OperationalError: нет такой таблицы 'web_user' - PullRequest
0 голосов
/ 14 января 2020

Я хочу, чтобы в моем приложении Django было 2 типа пользователей, поэтому я следовал этому уроку и выполнил

python manage.py makemigrations web
python manage.py migrate

(«web» - это название моего приложения )

Теперь я хочу получить доступ к admin части сайта, автоматически добавляемой django в localhost:PORT/admin. Когда я пытаюсь получить доступ к этой странице, эта ошибка показывает:

django.db.utils.OperationalError: no such table: web_user

Вот мой models.py:

from django.contrib.auth.models import AbstractUser
from django.db import models

from web import constants


class User(AbstractUser):
    USER_TYPE_CHOICES = (
        (constants.USER_TYPE_CLEANER, 'cleaner'),
        (constants.USER_TYPE_CONTRACTOR, 'contractor'),
    )

    user_type = models.PositiveSmallIntegerField(choices=USER_TYPE_CHOICES)

    # extra fields
    email = models.CharField(max_length=100)
    phone_number = models.CharField(max_length=15)
    date_of_birth = models.DateField('date_of_birth')
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=25)
    state = models.CharField(max_length=25)

и установите его в settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'web.apps.WebConfig',
]

# Authentication
AUTH_USER_MODEL = 'web.User'

Как включить администраторский сайт django? Это очень полезно для создания демонстрационных данных.

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Благодаря @bmons ответом было удаление базы данных db.sqlite3, миграция файлов и создание нового пользователя. Обратите внимание, что дополнительные поля должны быть обнуляемыми, в противном случае создание суперпользователя завершится неудачей.

0 голосов
/ 14 января 2020

убедитесь, что перед запуском makemigrations и миграции добавьте имя вашего приложения в INSTALLED_APPS в настройках проекта

...