pythonhtmldjangoformsplaceholder

django add placeholder text to form field


In Django I have the below code which is creating a username and password form on an HTML Page:

<div class="control-group">
    {{ form.username }}
</div>
<div class="control-group">
    {{ form.password }}
</div>

I want to add "Username" and "Password" placeholder text within the field, and then when the user clicks on the field the word dissapears. What is the best way to achieve this ?


Solution

  • You must use the placeholder properties

    class LoginForm(forms.Form):
        username = forms.CharField(label='username')
        password = forms.CharField(label='password')
    
    
        def __init__(self, *args, **kwargs):
            super(LoginForm, self).__init__(*args, **kwargs)
            self.fields['username'].widget.attrs['placeholder'] = 'username'
            self.fields['password'].widget.attrs['placeholder'] = 'password'
    

    or

    class LoginForm(forms.Form):
        username = forms.CharField(label='username',widget=forms.TextInput(attrs={'placeholder':'username'}))
        password = forms.CharField(label='password',widget=forms.PasswordInput(attrs={'placeholder':'password'}))