我有一个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/