Проблема заключалась в том, что бэкенд аутентификации является классом, который реализует два обязательных метода: get_user и authenticate (первый из которых я не прописал). Лично в моем коде я подправил методы модели MyUserManager и, собственно, добавил необходимый метод в Backend:
/project/user/models.py
class MyUserManager(UserManager):
def create(self, **kwargs):
user = super().create(**kwargs)
user.set_password(user.password)
user.save()
return user
def get(self, **kwargs):
if kwargs.get('email', None) is not None:
return super().get(email=kwargs['email'])
elif kwargs.get('id', None) is not None:
return super().get(id=kwargs['id'])
return None
/project/admission/backend.py
class Backend:
def authenticate(self, request=None, username=None, email=None, password=None):
if None in [email, password]:
return None
scope = locals()
data = {i: eval(i, scope) for i in ['username', 'email', 'password'] if eval(i, scope) is not None}
try:
password = data.pop('password')
user = User.objects.get(**data)
if not user.check_password(password):
return None
except:
return None
return user
def get_user(self, iden):
return User.objects.get(id=iden)