我有一个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
Run Code Online (Sandbox Code Playgroud)
我需要管理员站点将该password字段显示为密码输入,但似乎无法弄清楚如何执行此操作.我已经尝试过使用一个ModelAdmin类,一个ModelAdmin有一个ModelForm,但似乎无法弄清楚如何使django显示形式作为密码输入...
Dom*_*ger 23
从文档中,您可以构建自己的表单,如下所示:
from django.forms import ModelForm, PasswordInput
class TwitterUserForm(ModelForm):
class Meta:
model = TwitterUser
widgets = {
'password': PasswordInput(),
}
Run Code Online (Sandbox Code Playgroud)
或者你也可以做这样的:
from django.forms import ModelForm, PasswordInput
class TwitterUserForm(ModelForm):
password = forms.CharField(widget=PasswordInput())
class Meta:
model = TwitterUser
Run Code Online (Sandbox Code Playgroud)
我不知道哪一个更好-我稍微比较喜欢第一个,因为这意味着你仍然会得到任何help_text与verbose_name您的机型.
无论您采用哪种方法,您都可以让管理员使用您的表单(在您的应用程序中admin.py):
from django.contrib import admin
class TwitterUserAdmin(admin.ModelAdmin):
form = TwitterUserForm
admin.site.register(TwitterUser, TwitterUserAdmin)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8561 次 |
| 最近记录: |