2017-05-04 3 views
0

Ich bin neu in Python und Django Framework und ich erstellte ein Login-Formular, das funktioniert gut, aber nur ist, dass ich nicht in der Lage, das Passwort während der Eingabe zu maskieren.Maskierung Passwort in Django

Views.py

class LoginFormView(FormView): 
template_name = 'Login/login-page.html' 
form_class = AuthenticationForm 

def form_valid(self, form): 
    login(self.request, form.get_user()) 
    return redirect('personal:index') 

Login/login-seite.html

{% block content %} 
 
    <form class="form-horizontal" method="post" enctype="multipart/form-data"> 
 
     {% csrf_token %} 
 
     {% for field in form %} 
 
      <div class="form-group"> 
 
       <label for="{{ field.id_for_label }}" class="col-sm-2 control-label">{{field.html_name}}</label> 
 
       <div class="col-sm-5"> 
 
        <input class="form-control" id="{{ field.id_for_label }}" name="{{ field.html_name }}" /> 
 
       </div> 
 
      </div> 
 
     {{ field.errors }} 
 
     {% endfor %} 
 
     <div class="form-group"> 
 
     <div class="col-sm-offset-2 col-sm-10"> 
 
      <button type="submit" class="btn btn-success "> 
 
      <span class="glyphicon glyphicon-log-in" aria-hidden="true"></span> Sign in 
 
      </button> 
 
     </div> 
 
     </div> 
 
    </form> 
 
{% endblock %}

Jedes Mal, wenn ich versuche, den folgenden Code in views.py hinzufügen

password = forms.CharField(widget=PasswordInput) 

I hat keine Wirkung, und wenn ich das gleiche mit form_class versuchen, anstatt Formulare es Arbeit als Typ Objekt ‚AuthenticationForm‘ tut hat kein Attribut ‚CharField‘

Auch in der Login-seite.html Ich habe Hat das Eingabe-Tag, dessen Typ standardmäßig auf Text gesetzt ist, eine Möglichkeit, es in ein Passwort zu ändern? Wie ich auf Felder im Formular geloopt habe.

Bitte lassen Sie mich wissen, wo ich falsch liege.

Danke und Grüße, Chinmay Swami

+2

Mögliches Duplikat [Wie Passwort-Eingabefeld in django erstellen] (http://stackoverflow.com/ Fragen/9324432/how-to-create-password-input-field-in-django) –

+0

Eigentlich habe ich den Beitrag gesehen, aber es basiert auf ModelForm, aber ich benutze FormView daher konnte ich es nicht auf mein Problem beziehen – ChinmaySwami

Antwort

1

versuchen, diese Form hinzufügen:

widget=forms.TextInput(attrs={'type' : 'password'}) 
+0

Hallo Es hat nicht funktioniert. Ich fügte folgendes in views.py hinzu: password = forms.CharField (widget = forms.TextInput (attrs = {'type': 'passwort'}))) – ChinmaySwami

+0

Sie fügen es Ihren Ansichten hinzu? Haben Sie keine separate forms.py-Datei? - Ich habe diesen Code auf einem eigenen Formular getestet und es hat funktioniert. Zeigen Sie Ihr ganzes Formular für das Passwort, damit ich sehen kann. – drew

+0

Hallo Andrew Sorry für die verzögerte Antwort ich Art der Rest der App entwickelt. Eigentlich habe ich nicht ein foms.py erstellt, da ich AuthenticationForm verwende Ich habe eine forms.py, die ich für die Registrierung des Benutzers verwenden und dort habe ich den Code hinzugefügt, aber es scheint nicht zu arbeiten. Ich vermute, dass der Schuldige im HTML-Code ist Der Typ wird nicht automatisch gemäß dem Feld – ChinmaySwami