DJANGO - 如何从表单内部访问当前模型实例

时间:2009-06-24 20:46:37

标签: python django model instance

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 个答案:

答案 0 :(得分:2)

您无法在表单声明中访问该实例,因为在您实例化之前没有实例。

但是,如果您只想设置动态初始数据,请在即时时使用initial参数执行此操作:

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

答案 1 :(得分:0)

您可以在EditAdminForm中定义__init__方法。

类似的东西:

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)