我正在使用django,我有一个包含密码字段的模型。在创建新模型时,我想显示两个密码字段(一个用于键入,另一个用于验证),但在编辑模型时,我想只显示一个包含密码哈希码的只读字段。
我想要做的就是为User
模型做了什么。我查看了代码,但我找不到ModelForm
的{{1}}。
那么在哪里查看django代码或如何知道我是否处于创建或编辑模式。
这就是我所做的:
admin.py
User
form.py
class myModelAdmin(admin.ModelAdmin):
form = myModelForm
admin.site.register(myModel, myModelAdmin)
models.py
class myModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(myModelForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.pk:
self.fields['password'].widget.attrs['readonly'] = True
class Meta:
model = myModel
# I commented this otherwise I get password field on editing mode
"""widgets = {
'password': forms.PasswordInput(),
}"""