2009-06-24 10 views
0
class EditAdminForm(forms.ModelForm): 
    password = username.CharField(widget=forms.TextInput()) 
    password = forms.CharField(widget=forms.PasswordInput()) 
    password_confirm = forms.CharField(widget=forms.PasswordInput(), initial=???) 

Sie können sehen, was ich hier versuchen möchte. Wie würde ich das pasword_confirm-Feld (das nicht Teil des Modells ist) vorbelegen. Ich bin so verwirrt.DJANGO - Wie Sie auf die aktuelle Modellinstanz von innerhalb eines Formulars zugreifen

+0

Was möchten Sie gerne mit, das Feld füllen? –

+0

Sie haben das Passwort-Feld zweimal deklariert. Ich nehme an, dass Sie das erste Feld als Benutzernamen haben wollten. Die Bestätigung des Passworts ist auch etwas, das ich nur als vom Benutzer hinzugefügt betrachten kann, anstatt automatisch vorzufüllen. Es fällt mir schwer, mir Ihren Anwendungsfall vorzustellen. Fühlen Sie sich frei, weitere Informationen darüber, was genau Sie versuchen zu tun, und vielleicht können wir Ihnen helfen. – Prairiedogg

+0

Ich bin auch neugierig, was Sie mit password_confirm füllen möchten? –

Antwort

2

Sie nicht die Instanz in Form Erklärung zugreifen können, weil es nicht ein, bis Sie es instanziiert.

Wenn jedoch alles, was Sie tun möchten, ist dynamisch Anfangsdaten gesetzt, dies zu tun mit dem initial Parameter auf instantation:

form = EditAdminForm(initial={'password':'abcdef'}) 
0

Sie können die Methode __init__ in EditAdminForm definieren.

so etwas wie:

class EditAdminForm(forms.ModelForm): 
    username = forms.CharField(widget=forms.TextInput()) 
    password = forms.CharField(widget=forms.PasswordInput()) 
    def __init__(self, initial_from, data=None, initial=None) 
     sefl.fields['password_confirm'] = forms.CharField(widget=forms.PasswordInput(), initial=initial_from) 
+0

Vielen Dank für Ihre Antwort auch. Ich habe es nicht versucht, weil ich ein wenig verwirrt war, aber ich glaube nicht, dass ich das mit der Form selbst verbinden möchte, denn wenn ich das Formular ohne eine Instanz verwende, wird es einen Fehler auslösen. – orokusaki

Verwandte Themen