title: Django form not saving password when creating user
body: <p>I have made a custom form for my django app which allows users to register themselves for the website.</p>
  
  <p>This is the form for my django app:</p>
  
  <pre><code>class TeacherRegistrationForm(UserCreationForm):
      email = forms.EmailField(required = True)
      school = forms.CharField(required = True)
      subject = forms.CharField(required = True)
      head_of_subject = forms.BooleanField(required = False)
      identification_code = forms.CharField(required = True)
  
      def __init__(self, *args, **kwargs):
          super(TeacherRegistrationForm, self).__init__(*args, **kwargs)
          self.fields['username'].help_text = ''
          self.fields['password2'].help_text = ''
  
  
      class Meta:
          model = User
  
          fields = (
              'username',
              'first_name',
              'last_name',
              'email',
              'school',
              'identification_code',
              'subject',
              'head_of_subject',
              'password1',
              'password2'            
          )
  
      def save(self, request):
          form = TeacherRegistrationForm(request.POST)
          user = User.objects.create(first_name=self.cleaned_data['first_name'],
                              last_name=self.cleaned_data['last_name'],
                              email=self.cleaned_data['email'],
                              username=self.cleaned_data['username'],
                              password=self.cleaned_data['password1']
                              )
  
          teacher_profile = TeacherProfile.objects.create(user=user,
                                                          school=self.cleaned_data['school'],
                                                          subject=self.cleaned_data['subject'],
                                                          head_of_subject=self.cleaned_data['head_of_subject'],
                                                          )
  
  
          return user, teacher_profile
  </code></pre>
  
  <p>This is the relevant part of the view:</p>
  
  <pre><code>if request.method == 'POST':
  
          form = TeacherRegistrationForm(request.POST)
  
          entered_school_name = form['school'].value()
          entered_school_id = form['identification_code'].value()
  
          actual_school_id = SchoolProfile.objects.get(school_name__exact = entered_school_name).identification_code
  
          if form.is_valid()and (entered_school_id == actual_school_id):
  
              user, teacher_profile = form.save(request)
  
              return render(request, 'accounts/home.html')
          else:
              args = {'form': form}
              return render(request, 'accounts/reg_form.html', args)
  </code></pre>
  
  <p>When I press submit, the user is created, however no password is set for the user</p>