Использование различных таблиц для аутентификации и простого jwt - Django rest framework
Я немного новичок в Django REST и Django в целом, как использовать другую таблицу для auth, так как мой api ищет auth_user, он продолжает говорить «[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name „auth_user“. (208) (SQLExecDirectW); [42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Statement(s) could not be prepared. (8180)», когда я пытаюсь добавить мой носитель токена jwt в apiview [isAuthenticated]. кстати, мой django использует mssql
Я попробовал добавить AUTH_USER_MODEL в свою модель, но она выдает ту же ошибку
Чтобы использовать другую таблицу пользователей для аутентификации в Django, необходимо убедиться, что параметр AUTH_USER_MODEL
настроен правильно. Поэтому вам нужно определить пользовательскую модель пользователя и сообщить django, что вы хотите использовать ее
в вашем models.py, попробуйте сделать что-то вроде этого :
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
from django.db import models
class CustomUserManager(BaseUserManager):
def create_user(self, email, password=None, **extra_fields):
if not email:
raise ValueError("The Email field must be set")
email = self.normalize_email(email)
user = self.model(email=email, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password=None, **extra_fields):
extra_fields.setdefault("is_staff", True)
extra_fields.setdefault("is_superuser", True)
return self.create_user(email, password, **extra_fields)
class YourCustomUser(AbstractBaseUser):
email = models.EmailField(unique=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
objects = CustomUserManager()
USERNAME_FIELD = "email"
REQUIRED_FIELDS = []
def __str__(self):
return self.email
Адаптация модели к вашим потребностям
После создания customUser вам нужно сообщить Django, что вы хотите его использовать :
В файле settings.py вашего проекта найдите эту строку и укажите на нее вашу модель :
AUTH_USER_MODEL = 'your_app_name.YourCustomUser'
Затем выполните миграцию