相关疑难解决方法(0)

如何在模型django中创建密码字段

我想在视图中创建密码作为密码字段.请有人帮帮我吗?提前致谢

class User(models.Model):
    username = models.CharField(max_length=100)
    password = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms

28
推荐指数
3
解决办法
7万
查看次数

Django密码问题

我正在使用像这样的用户模型:

class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('username','password','email',)
Run Code Online (Sandbox Code Playgroud)

但密码字段显示为常规文本字段,而不是密码输入.如何确保显示密码字段?

我试过这个:

class UserForm(forms.ModelForm):
    username = forms.CharField(max_length = 15, min_length = 6)
    password = forms.PasswordInput() 
    class Meta:
        model = User
        fields = ('username','password','email',)
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

我也试图像这样添加一个确认密码字段,但这不会显示任何字段:

class UserForm(forms.ModelForm):
    username = forms.CharField(max_length = 15, min_length = 6)
    password = forms.PasswordInput()
    cpassword = forms.PasswordInput()

    def clean(self):
        if self.cleaned_data['cpassword']!=self.cleaned_data['password']:
            raise forms.ValidationError("Passwords don't match")

    class Meta:
        model = User
        fields = ('username','password','cpassword','email',)
Run Code Online (Sandbox Code Playgroud)

django django-forms

10
推荐指数
1
解决办法
6846
查看次数

密码字段在 Django 管理站点中可见且未加密

因此,要使用电子邮件作为用户名,我会像这样重写内置User模型(受到Django 源代码的启发)

模型.py

class User(AbstractUser):
    username = None
    email = models.EmailField(unique=True)
    objects = UserManager()
    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = []

    def __str__(self):
        return self.email
Run Code Online (Sandbox Code Playgroud)

管理员.py

@admin.register(User)
class UserAdmin(admin.ModelAdmin):
    fieldsets = (
        (None, {"fields": ("email", "password")}),
        (("Personal info"), {"fields": ("first_name", "last_name")}),
        (
            ("Permissions"),
            {
                "fields": (
                    "is_active",
                    "is_staff",
                    "is_superuser",
                    "groups",
                    "user_permissions",
                ),
            },
        ),
        (("Important dates"), {"fields": ("last_login", "date_joined")}),
    )
    add_fieldsets = (
        (
            None,
            {
                "classes": ("wide",),
                "fields": ("email", "password1", "password2"),
            },
        ),
    )
    list_display = …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-admin

3
推荐指数
1
解决办法
2479
查看次数