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

  • 相关阅读:
    GitHub里的Hello World!
    4 款消息队列软件产品大比拼(转)
    .net常用组件
    Dapper.NET使用(转)
    设置MYSQL允许用IP访问
    test1
    SQLServer 2008以上误操作数据库恢复方法——日志尾部备份(转)
    Quartz.NET配置
    Quartz CronTrigger配置
    Quartz CronTrigger最完整配置说明
  • 原文地址:https://www.cnblogs.com/future-dream/p/14131604.html
Copyright © 2011-2022 走看看