我是Python编码的新手,现在正在尝试学习Django。 现在我正在使用django 1.11.3版本。 所以我在Django中学到了基本的东西并创建了一个应用程序。
在我的应用中,我创建了一个包含密码字段的学生模型。我注意到的是,在管理模块中,密码字段以简单文本存储。所以我需要帮助来管理管理模块中的密码字段。我需要md5哈希。
你们也可以帮助我。有没有办法解决这个问题?
这就是我的尝试。
我的模特
class student(models.Model):
name = models.CharField(max_length=100)
age = models.CharField(max_length=2)
dob = models.DateField()
father_name = models.CharField(max_length=100)
username = models.CharField(max_length=25,null=True)
password = models.CharField(max_length=100,null=True)
def __unicode__(self):
return self.name
我的管理员
from django.contrib import admin
from django import forms
from .models import student
admin.site.register(student)
class studentAdmin(admin.ModelAdmin):
formfield_overrides = {
student.password: {'widget': forms.PasswordInput},
}
答案 0 :(得分:2)
你一定不能这样做。
Django包含一个认证框架,其中包含您已经拥有的所有内容,包括customise the model包含您的出生日期字段的能力。
(注意,包括年龄在内也没有意义;您可以随时根据需要从dob计算出来。)
答案 1 :(得分:1)
查看如何完成此操作的好地方是查看django.contrib.auth中的Django源代码,它们为用户处理相同的场景。
您的想法是,您将使用带有密码字段的自定义管理表单,以便您可以从表单中获取原始密码,然后手动设置密码,首先通过哈希表运行它。
type Documents struct {
UserID string `json:"user_id"`
PartnerID []string `json:"partner_id"`
LastLogin int `json:"last_login"`
}
如果您不想使用默认类型,make_password也会采用哈希类型争论。