01-重载Django内置User表结构 | Django


# django自带user表,auth_user中包含默认字段有:
    #     password,last_login,is_superuser,username,
    #     first_name,last_name,email,is_staff,is_active,deta_joined
    1.分析网站需要的user字段
        # 自定义user表
        # 继承django内置user表的类AbstractUser
        from django.contrib.auth.models import AbstractUser
        
        class UserProfile(AbstractUser):
            # 添加自己需要但是默认表中不具备的字段
            nick_name = models.CharField(max_lengh=50, verbose_name="")
            # 该字段可以不填,因为用户注册的时候不需要输入
            birth = models.DateField(verbose_name="生日", null=True, blank=True)
            # CharField字段一定要加上长度限制
            gender = models.CharField(
                    max_lengh=6,
                    choices=(
                    ('male', ''),
                    ('female', '')),
            )
            address = models.CharField(max_length=100, default="")
            mobile = models.CharField(max_lengh=11, null=True, blank=True)
            # 头像文件字段,当没有头像的时候需要一个默认的头像
            # ImageField字符需要安装pillow包
            image = models.ImageField(upload_to="image/%Y/%m", default="image/default.png", max_lengh=100)
            
            class Meta:
                verbose_name = "用户信息"
                verbose_name_plural = verbose_name
                
            def __str__(self):
                return self.username
                
    2.重载表结构需要添加设置
        AUTH_USER_MODEL = "users.UserProfile"  # app+模型类
    3.迁移
        # 先把原有的表统统删除

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM