我有一个 Django 站点,站点管理员在其中输入他们的 Twitter 用户名/密码以使用 Twitter API。模型设置如下:
class TwitterUser(models.Model):
screen_name = models.CharField(max_length=100)
password = models.CharField(max_length=255)
def __unicode__(self):
return self.screen_name
我需要管理站点将 password
字段显示为密码输入,但似乎不知道该怎么做。我试过使用 ModelAdmin
类,一个 ModelAdmin
和一个 ModelForm
,但似乎无法弄清楚如何让 django 显示该表单作为密码输入...
最佳答案
来自 the docs ,您可以构建自己的表单,如下所示:
from django.forms import ModelForm, PasswordInput
class TwitterUserForm(ModelForm):
class Meta:
model = TwitterUser
widgets = {
'password': PasswordInput(),
}
或者你也可以做到like this :
from django.forms import ModelForm, PasswordInput
class TwitterUserForm(ModelForm):
password = forms.CharField(widget=PasswordInput())
class Meta:
model = TwitterUser
我不知道哪个更好 - 我更喜欢第一个,因为这意味着您仍然可以从您的模型中获得任何 help_text
和 verbose_name
。
无论您采用这两种方法中的哪一种,您都可以让管理员像这样使用您的表单(在您应用的 admin.py
中):
from django.contrib import admin
class TwitterUserAdmin(admin.ModelAdmin):
form = TwitterUserForm
admin.site.register(TwitterUser, TwitterUserAdmin)
关于python - 使 CharField 在管理员中使用 PasswordInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810996/