Skip to content

Instantly share code, notes, and snippets.

@fission6
Created June 10, 2016 13:37
Show Gist options
  • Save fission6/1b0d409741db5a46c3bc74b940e1d5ba to your computer and use it in GitHub Desktop.
Save fission6/1b0d409741db5a46c3bc74b940e1d5ba to your computer and use it in GitHub Desktop.
Django 1.9.6 Case Insensitive Username Logins
from django.db.models.functions import Lower
from django.db.models import CharField
from django.contrib.auth.models import UserManager as DjangoUserManager
CharField.register_lookup(Lower, 'lower')
class UserManager(DjangoUserManager):
"""
Allow case insensitive usernames for authenticating.
Use this Model Manager on your Custom User Model.
ie. objects = UserManager()
"""
def get_by_natural_key(self, username):
username_lower = username.lower()
return self.get(
username__lower=username_lower
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment