zoukankan      html  css  js  c++  java
  • Django对自定义的数据字段进行特殊处理

    一、场景

    我们在使用admin后台管理用户的时候需要对用户信息进行一个特殊处理,如加密用户的密码。这个时候我们就需要定义一个方法完成数据字段的加密。

    二、方法

    我们在model中重载save的方法,来对密码字段进行加密处理

    代码:

    class User(models.Model):
        userid = models.AutoField(db_column='userId', primary_key=True, verbose_name="用户ID")  # Field name made lowercase.
        username = models.CharField(db_column='userName', max_length=255, blank=True, null=True, verbose_name="用户名")  # Field name made lowercase.
        password = models.CharField(max_length=255, blank=True, null=True)
        gender = models.IntegerField(blank=True, null=True, verbose_name="性别", choices=((1, ''), (0, '')))
        mail = models.CharField(max_length=45, blank=True, null=True, verbose_name="邮件")
        picurl = models.CharField(db_column='picUrl', max_length=255, blank=True, null=True, default="xxx.png")  # Field name made lowercase.
        
        # 重新方法完成数据字段加密
        # 引入hashlib的包
        def save(self, *args, **kwargs):
            md5 = hashlib.md5()
        # 加密的字段
            md5.update(self.password.encode())
            self.password = md5.hexdigest()
            super(User, self).save(*args, **kwargs)
    
        class Meta:
            # managed = False
            verbose_name = "用户管理表"
            verbose_name_plural = verbose_name
            db_table = 'user'

    结果

    三、总结

    通过上面的方法就可以实现数据字段的加密,值得注意的是,由于现实的字段是加密之后的字段,如果在没有修改的情况下继续点击保存就会对加密的数据在加密,因此查看完数据之后不能直接点保存。

    参考:

    https://blog.csdn.net/qq_33036061/article/details/107927193

  • 相关阅读:
    CSS选择器
    HTML2
    html
    http协议
    python--Selectors模块/队列
    Linux系统管理02----目录和文件管理
    Linux系统管理01-----系统命令
    02作业 linux第一章和第三章命令
    01作业 Linux系统管理应用
    01:计算机硬件组层与基本配置------02计算机系统硬件核心知识
  • 原文地址:https://www.cnblogs.com/future-dream/p/14131604.html
Copyright © 2011-2022 走看看