• django自带User管理中添加自己的字段方法


    #coding=utf-8
    from django.db import models
    from django.contrib.auth.models import User, make_password, check_password, Group, GroupManager
    from django.contrib.auth.admin import UserAdmin
    from OnLineAnswer.settings import UPLOADTO
    
    # Create your models here.
    class WebPowers(models.Model):
        powername = models.CharField(max_length=250)
        def __unicode__(self):
            return self.powername
    
    class ProfileBase(type):                    #对于传统类,他们的元类都是types.ClassType
        def __new__(cls, name, bases, attrs):      #带参数的构造器,__new__一般用于设置不变数据类型的子类
            module = attrs.pop('__module__')
            parents = [b for b in bases if isinstance(b, ProfileBase)]
            if parents:
                fields = []
                for obj_name, obj in attrs.items():
                    if isinstance(obj, models.Field): fields.append(obj_name)
                    User.add_to_class(obj_name, obj)
                UserAdmin.fieldsets = list(UserAdmin.fieldsets)
                UserAdmin.fieldsets.append((name, {'fields': fields}))
            return super(ProfileBase, cls).__new__(cls, name, bases, attrs)
    
    class ProfileUser(object):
        __metaclass__ = ProfileBase     #类属性
    
    class MyProfile(ProfileUser):
        headImage = models.ImageField(upload_to=UPLOADTO, null=True, blank=True, verbose_name="头像")
    

      

  • 相关阅读:
    日志组件一:Log4j
    HTTPS加密那点事--轻松秒懂HTTPS非对称加密
    图解Git
    Python 迭代器 & __iter__方法
    Fiddler 抓包工具总结
    Python使用struct处理二进制(pack和unpack用法)
    Python binascii
    常见证书格式及相互转换
    MyBatis Generator 详解
    MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
  • 原文地址:https://www.cnblogs.com/zhaojia-dream/p/4480112.html
Copyright © 2020-2023  润新知