Pregunta

class EditAdminForm(forms.ModelForm):
    password = username.CharField(widget=forms.TextInput())
    password = forms.CharField(widget=forms.PasswordInput())
    password_confirm = forms.CharField(widget=forms.PasswordInput(), initial=???)

Puedes ver lo que estoy tratando de hacer aquí. ¿Cómo haría para rellenar previamente el campo pasword_confirm (que no es parte del modelo)? Estoy muy confundido.

¿Fue útil?

Solución

No puede acceder a la instancia en la declaración del formulario, porque no hay una hasta que la instancia.

Sin embargo, si todo lo que desea hacer es establecer datos iniciales dinámicos, hágalo con el parámetro initial en la instalación:

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

Otros consejos

Puede definir el método __init__ en EditAdminForm.

algo así como:

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top