Admin page on django is broken
Are you using a custom user model and forgot add it in settings.py
? That is what just happened to me.
# Substituting a custom User model
AUTH_USER_MODEL = "app_custom_auth.User"
This problem may be related to the Authentication Backends. Please check your settings files for the AUTHENTICATION_BACKENDS parameter.
Try the following value:
AUTHENTICATION_BACKENDS = (
('django.contrib.auth.backends.ModelBackend'),
)
More information on the Official Django Documentation
I had the same issue, but AUTHENTICATION_BACKENDS flag on settings file was not the problem for me. Using Django Rest Framework somehow i had modified the password without calling set_password therefore bypassing hashing the password. That's why it was showing the invalid login.
I was able to detect the issue by running simple test in order to test the user creation by a similar test:
from django.test import TestCase
from django.contrib import auth
from .models import *
class AuthTestCase(TestCase):
def setUp(self):
self.u = UserProfile.objects.create_user('[email protected]', 'iamtest', 'pass')
self.u.is_staff = True
self.u.is_superuser = True
self.u.is_active = True
self.u.save()
def testLogin(self):
self.client.login(username='[email protected]', password='pass')
It is also worth mentioning that I was creating a custom user named UserProfile
Try this; in tests.py:
from django.contrib import auth
class AuthTestCase(TestCase):
def setUp(self):
self.u = User.objects.create_user('[email protected]', '[email protected]', 'pass')
self.u.is_staff = True
self.u.is_superuser = True
self.u.is_active = True
self.u.save()
def testLogin(self):
self.client.login(username='[email protected]', password='pass')
Then run the test with python manage.py test <your_app_name>.AuthTestCase
. If this passes, the system is working, maybe look at the username and password to make sure they are acceptable.