如果我继承django用户,为什么我的代码不加密密码?

时间:2016-08-29 14:21:58

标签: python django django-models django-views

我正在学习django,我需要创建一个名为Person的自定义用户。我使用来自contrib.auth.models用户的继承,但在我的django管理员中添加新教师的表单不显示字段确认密码,密码未在表用户中加密

from django.db import models
from django.contrib.auth.models import User, UserManager

# Create your models here.


class Person (User):

    date_of_birth = models.DateField(blank=False, null=False)

    class Meta:
        abstract = True


class ClassRoom (models.Model):
    classroom = models.CharField(max_length=3, blank=False, null=False)

    def __unicode__(self):
        return self.classroom


class Teacher(Person):
    phone = models.PositiveIntegerField(max_length=15, blank=False, null=False)
    classroom = models.ManyToManyField(ClassRoom)

你可以在这张照片中看到保存第一个和第二个用户输入密码(这个用户在django管理员中被添加为普通用户),但最后一个(在django管理员中作为教师提供)不加密密码

有人可以帮帮我吗? database photo user table

1 个答案:

答案 0 :(得分:0)

要加密密码,您需要通过用户set_password方法进行设置。例如,

user = User(
            email=email, is_staff=False, is_active=True,
            is_superuser=False,
            last_login=now, date_joined=now, **extra_fields)

user.set_password(password)
user.save(using=self._db)