有关Django中字段类型的问题

时间:2012-08-27 07:30:34

标签: python django

我是Django的新手,我想在Django中创建一个用户注册表单。在创建模型时,我给了一个fieldtype-> PasswordField()到密码字段,但是当我把这个模型运行到终端时我得到了一个错误

password=models.PasswordField()
AttributeError: 'module' object has no attribute 'PasswordField'

所以我想知道Django中哪个字段类型用于密码。我已经引用了表单文档,但我什么也没找到。

所以请帮帮我

2 个答案:

答案 0 :(得分:4)

理论

  1. 使用django.db.models.CharField ,因为这是密码字符串的OK数据库列类型

  2. 使用django.forms.PasswordWidget ,在表单中表示此字段,请参阅overriding default form field widgets

  3. 实施例

    models.py:

    from django.db import models
    
    
    class YourModel(models.Model):
        password = models.CharField(max_length=200)
    

    forms.py:

    from django import forms
    
    from models import YourModel
    
    
    class YourModelForm(forms.ModelForm):
        class Meta:
            widgets = {'password': forms.PasswordField}
            model = YourModel
    

答案 1 :(得分:2)

django中没有PasswordField()。您可以使用CharField()来存储密码,但要在html表单中将其显示为密码输入类型,您可以为其指定一个小部件。

示例:

password = forms.CharField(widget=forms.PasswordInput())

更多参考资料:PasswordInput