2012-01-10 43 views
1
class Users(models.Model): 
    username = models.CharField(max_length=255) 
    password = models.CharField(max_length=300) 
    password_token = models.CharField(max_length=300, default='0') 

密碼文本輸入字段是常規文本輸入字段。這不是密碼字段。如何獲取django的密碼文本框?

如何在django中獲取密碼字段?

我試過password = models.CharField(max_length=300, widget=forms.PasswordInput)但出錯。

+0

你得到什麼錯誤? 「有錯誤」告訴​​我們什麼都沒有。 – 2012-01-10 16:12:47

+0

檢查[this](http://stackoverflow.com/questions/3715103/password-field-in-django-model)out – jere 2012-01-10 16:14:22

+2

[覆蓋默認小部件](https://docs.djangoproject.com/en/1.3/主題/形式/模型/#覆蓋默認字段類型或小部件) – 2012-01-10 16:23:26

回答

3

的一種方式,如果你在你的應用程序一個forms.py在類的Meta例如指定部件

from django.forms import ModelForm, PasswordInput 
class UserForm(ModelForm): 

    class Meta: 
     model = Users 

     widgets = { 
      'password' : PasswordInput(), 
     } 
+0

正確。謝謝keni – shibly 2012-01-10 17:33:11

+0

是否有任何其他方式在'class Users(models.Model)中執行相同的操作:password = models.CharField(max_length = 300) '? – shibly 2012-01-10 17:50:22

1

您可以使用這種方法。在您的應用程序內創建一個名爲forms.py的文件。

例如:

from django import forms 
from models import Users 

class UsersForm(forms.ModelForm): 
    password = forms.CharField(widget=forms.PasswordInput) 

    class Meta: 
     model = Users