title: Django UserCreationForm custom fields
body: <p>I am trying to create form for user registration and add some custom fields. For doing that, I've subclassed UserCretionForm and added fields as shown in django documentation. Then I've created function-based view and template based on this form. Now, I can successfully create user and this user is added to admin panel as expected. Problem is that, I can't add class and style for this form's fields. Widgets are not working except for username field. I'm adding my scripts here for illustrating my problem more accurately:</p>
  
  <p>forms.py</p>
  
  <pre><code>from django import forms
  from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
  from django.contrib.auth.models import User
  
  
  class SignUpForm(UserCreationForm):
      first_name = forms.CharField(max_length=32, help_text='First name')
      last_name = forms.CharField(max_length=32, help_text='Last name')
      email = forms.EmailField(max_length=64, help_text='Enter a valid email address')
  
      class Meta(UserCreationForm.Meta):
          model = User
          # I've tried both of these 'fields' declaration, result is the same
          # fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )
          fields = UserCreationForm.Meta.fields + ('first_name', 'last_name', 'email',)
  
          widgets = {
              'username': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}),
              'first_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}),
              'last_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Last Name'}),
              'email': forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email'}),
              'password1': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}),
              'password2': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password Again'}),
          }
  </code></pre>
  
  <p>views.py</p>
  
  <pre><code>from django.contrib.auth import login, authenticate
  from django.contrib.auth.views import LoginView
  from django.shortcuts import render, redirect
  
  from .forms import SignUpForm, SignInForm
  
  
  def signup(request):
      if request.method == 'POST':
          form = SignUpForm(request.POST)
          if form.is_valid():
              form.save()
              username = form.cleaned_data.get('username')
              raw_password = form.cleaned_data.get('password1')
              user = authenticate(username=username, password=raw_password)
              login(request, user)
              return redirect('/')
      else:
          form = SignUpForm()
      return render
  </code></pre>
  
  <p>Widgets in 'forms.py' are not working except for 'username' field. In other words, in web browser 'username' input is shown with "class='form-control'" and "placeholder='Username'", but other fields don't have class and placeholder attribute as I expected. What can be the reason?</p>