DJANGO - 如何在表单内部访问当前模型实例
class EditAdminForm(forms.ModelForm):
password = username.CharField(widget=forms.TextInput())
password = forms.CharField(widget=forms.PasswordInput())
password_confirm = forms.CharField(widget=forms.PasswordInput(), initial=???)
你可以看到我在这里想做什么。我该怎么做才能提前填充密码确认字段(这个字段不在模型里)。我感到很困惑。
2 个回答
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)
2
在你声明表单的时候,无法访问实例,因为在你创建实例之前,它是不存在的。
不过,如果你只是想设置一些动态的初始数据,可以在创建实例的时候使用 initial
参数来做到这一点:
form = EditAdminForm(initial={'password':'abcdef'})