Search code examples
djangodjango-templatesdjango-login

Is there any way to change username field label in user authentication login page?


Right now login page looked like this

I want to change label of username field to Team Name

Note: I'm using builtin LoginView


Solution

  • According to documentation LoginView has an attribute called authentication_form (typically just a form class). Defaults to AuthenticationForm.

    You can create a form class that inherits from AuthenticationForm, set the label of the username field and assign it to your LoginView over authentication_form attribute.

    forms.py

    from django import forms    
    from django.contrib.auth.forms import AuthenticationForm, UsernameField
    
    
    class CustomAuthenticationForm(AuthenticationForm):
        username = UsernameField(
            label='Team Name',
            widget=forms.TextInput(attrs={'autofocus': True})
        )
    

    views.py

    from django.contrib.auth.views import LoginView
    
    from .forms import CustomAuthenticationForm
    
    
    class CustomLoginView(LoginView):
        authentication_form = CustomAuthenticationForm
    

    urls.py

    urlpatterns = [
        path('login/', CustomLoginView.as_view(), name='login'),
    ]