Вам нужно определить свой собственный AUTHENTICATION_BACKEND и объявить его в settings.py:
то есть:
AUTHENTICATION_BACKENDS = (
'yourapp.backends.NoUsernameModelBackend',
)
Код должен выглядеть так:
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
Затем вам нужно определить свою собственную AuthenticationForm, чтобы вместо имени пользователя брать имя_символа и фамилию и соответственно определять шаблон URL.
в URL:
(r'^login/?$','django.contrib.auth.views.login', {'authentication_form':'FullNameAuthenticationForm'}, 'login'),