Как аутентифицировать пользователя из mysql в django?
Я хочу реализовать приложение для входа в систему. Вся информация о пользователях находится в таблице под названием 'admin_users'. Я использую mysql сервер с помощью xampp.
Когда я аутентифицируюсь с помощью user = authenticate(username=username,password=password)
.
При печати пользователя я получаю None
.
Я новичок в django и не могу понять, что не так.
Если я делаю AdminUsers.objects.all()
я могу вывести всю информацию о таблице.
models.py
class AdminUsers(models.Model):
username=models.CharField(max_length=50)
firstname=models.CharField(max_length=50)
department=models.CharField(max_length=50)
mail=models.CharField(max_length=50)
id=models.IntegerField(primary_key=True)
password=models.CharField(max_length=200)
class Meta:
db_table="admin_users"
view.py
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username,password=password)
print(user)
return render(request,'AdminUsers/login.html')
мой index.html содержит простые формы с именем пользователя и паролем.
settings.py
Вам нужно вставить это в настройки: AUTH_USER_MODEL = 'AppName.AdminUsers'
(замените AppName на имя приложения, содержащего AdminUsers).
Ваша пользовательская модель User должна наследоваться от AbstractUser, чтобы быть совместимой с системой аутентификации (сейчас она не работает):
class AdminUsers(AbstractUser):
department=models.CharField(max_length=50)
class Meta:
db_table='admin_users'
Теперь AdminUsers будет наследовать поля AbstractUser (username, email, password, is_staff, ...), читайте это для details. Если вы уже выполнили миграции, вам нужно удалить миграции модели User по умолчанию.
Обратите также внимание, что модель следует назвать 'AdminUser', а не 'AdminUsers'.
Не совсем понятно, какую цель вы преследуете, используя модель AdminUsers. Стандартная модель пользователя django имеет такие флаги, как is_staff и is_superuser, которые вы можете использовать для разделения пользователей и их прав относительно того, к чему они могут получить доступ в приложении. Посмотрите документацию по модели пользователя здесь