我有一个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显示为密码输入...
答案 0 :(得分:21)
从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)