2016-09-28 2 views
0

Ich versuche, eine Ansicht zu erstellen, um einem Benutzer zu ermöglichen, einen anderen Benutzer zu erstellen. Das Problem ist, dass das generierte Formular anfängliche Werte für die Felder 'password' und 'last_name' hat, und ich weiß nicht warum. Ich muss diese Anfangswerte entfernen.Benutzerformular hat Felder mit unerwünschten Anfangswert, Django

Ich habe ein UserForm mit ModelForm erstellt.

class UserForm(forms.ModelForm): 
    # I've tried this, but it doesn't change anything 
    #def __init__(self, *args, **kwargs): 
     #super(UserForm, self).__init__(*args, **kwargs) 
     #self.fields['password'].value = '' 
     #self.fields['last_name'].value = '' 

    password = forms.CharField(widget=forms.PasswordInput(render_value=True)) 

    class Meta: 
     model = User 
     fields = [ 
      'username', 'email', 'first_name', 'last_name' 
     ] 

Dann habe ich die Aussicht. Ich habe die Ansicht nach demselben Muster zum Erstellen von Ansichten für andere Objekte codiert. Nachdem dieses Problem haben, schrieb ich den Blick nach unten zu diesem:

def create_user(request): 
    user_form = UserForm() 

    context = { 
     "user_form": user_form, 
    } 
    return render(request, "remote/user/user_create_form.html", context) 

Ich hatte gehofft, dass, wenn ich nur das Formular anzuzeigen versucht, und die Formulardaten nicht zu behandeln, würde dieses Problem nicht auftreten, aber es funktioniert.

Meine Vorlage hat dies (ich bin mit knusprigen Formen):

<form action="" method="POST">{% csrf_token %} 
    {{ user_form|crispy }} 
    <input type="submit" class="btn btn-primary" value="Registar" /> 
</form> 

Hier ist, was die Form wie zunächst aussieht: password and last_name fields have initial values

+1

Ich denke, es ist Ihr Browser füllt das Formular aus dem Passwortspeicher. –

Antwort

0

Es ist, weil während des Tests haben Sie Browser-Funktion verwendet, könnte Speichern Sie das Feld und Formulardaten dh automatisches Speichern des Passworts.Es speichert in der Regel das Passwort und nur vorherige Feld des Formulars.Bitte löschen Sie Ihren Cache und Formular AutoFill-Daten aus den Browsereinstellungen. Lassen Sie uns wissen, ob der Fehler weiterhin besteht. Danke

+0

Ich habe getan, was Sie vorgeschlagen haben und es hat funktioniert. Vielen Dank. Ich glaube, ich war nur verwirrt darüber, warum die AutoFill im Feld "Nachname" statt in der "Benutzername" erschien. –

+0

Prost ..! Viel Spaß beim Programmieren :) –

Verwandte Themen