重构Django自带的User表 | Django


  从上一篇博可以看到一种使用django自带user表所拥有的权限功能的一种方式:外键一对一关联;

  这里介绍一种不使用auth_user表的方式:只要继承User表的父类(AbstractUser)

1.构造模型类,继承AbstractUser类

from django.contrib.auth.models import AbstractUser


class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, verbose_name="")
    birth = models.DateField(verbose_name="生日", null=True, blank=True)
    gender = models.CharField(
        max_length=6,
        choices=(
            ('male', ''),
            ('female', '')),
    )
    address = models.CharField(max_length=100, default="")
    mobile = models.CharField(max_length=11, null=True, blank=True)

    class Meta:
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.nick_name

2.在settings.py文件中指定刚创建的模型类

AUTH_USER_MODEL = "users.UserProfile"  # app+模型类

3.在迁移之前将原有表统统删除(如果之前迁移过)

4.迁移出来的表同样与权限表有关联

需求:根据字段的字符串,获取对象的该字段的数据?

措施:反射

>> from django.contrib.auth.models import User
>> user = User.objects.last()
>> getattr(user, "is_superuser") >> False

 


免责声明!

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



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