 <p>You need to define your own AUTHENTICATION_BACKEND and declare it in settings.py : ie : </p> <pre><code>AUTHENTICATION_BACKENDS = ( 'yourapp.backends.NoUsernameModelBackend', ) </code></pre> <p>The code should look like this :</p> <pre><code>class NoUsernameModelBackend def authenticate(self, first_name=None,last_name, password=None): try: user = User.objects.get(first_name=first_name,last_name=last_name) if user.check_password(password): return user except User.DoesNotExist: return None def get_user(self, user_id): try: return User.objects.get(pk=user_id) except User.DoesNotExist: return None </code></pre> <p>Then you need to define your own AuthenticationForm to take a first_name and a last_name instead of a username and define the url pattern accordingly.</p> <p>in urls : </p> <pre><code>(r'^login/?$','django.contrib.auth.views.login', {'authentication_form':'FullNameAuthenticationForm'}, 'login'), </code></pre>