DJANGO - Как получить доступ к текущему экземпляру модели из формы - PullRequest
0 голосов
/ 25 июня 2009
class EditAdminForm(forms.ModelForm):
    password = username.CharField(widget=forms.TextInput())
    password = forms.CharField(widget=forms.PasswordInput())
    password_confirm = forms.CharField(widget=forms.PasswordInput(), initial=???)

Вы можете увидеть, что я пытаюсь сделать здесь. Как бы я хотел предварительно заполнить поле pasword_confirm (которое не является частью модели). Я так растерялся.

Ответы [ 2 ]

2 голосов
/ 25 июня 2009

Вы не можете получить доступ к экземпляру в объявлении формы, потому что его нет, пока вы его не создадите.

Однако, если все, что вы хотите сделать, это установить динамические начальные данные, сделайте это с параметром initial при создании экземпляра:

form = EditAdminForm(initial={'password':'abcdef'})
0 голосов
/ 25 июня 2009

Вы можете определить __init__ метод в EditAdminForm.

что-то вроде:

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)
...