Problemas de contraseña de Django

Estoy usando una forma de modelo para el usuario de esta manera:

class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('username','password','email',)

pero el campo de contraseña se muestra como un campo de texto normal, no como una entrada de contraseña. ¿Cómo me aseguro de que muestre un campo de contraseña?

Intenté esto:

class UserForm(forms.ModelForm):
    username = forms.CharField(max_length = 15, min_length = 6)
    password = forms.PasswordInput() 
    class Meta:
        model = User
        fields = ('username','password','email',)

pero eso tampoco funciona.

También estoy tratando de agregar un campo de confirmación de contraseña, pero esto no causa que se muestren campos:

class UserForm(forms.ModelForm):
    username = forms.CharField(max_length = 15, min_length = 6)
    password = forms.PasswordInput()
    cpassword = forms.PasswordInput()

    def clean(self):
        if self.cleaned_data['cpassword']!=self.cleaned_data['password']:
            raise forms.ValidationError("Passwords don't match")

    class Meta:
        model = User
        fields = ('username','password','cpassword','email',)

Respuestas a la pregunta(1)

Su respuesta a la pregunta