Django-admin自定义用户信息表

Posted harryblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django-admin自定义用户信息表相关的知识,希望对你有一定的参考价值。

class UserProfile(auth.AbstractBaseUser, auth.PermissionsMixin):
    email = models.EmailField(
        verbose_name=email address,
        max_length=255,
        unique=True,
    )
    is_active = models.BooleanField(default=True)
    # 是否是admin账户
    is_admin = models.BooleanField(default=False)
    is_staff = models.BooleanField(
        verbose_name=staff status,
        default=False,
        help_text=Designates whether the user can log into this admin site.,
    )
    name = models.CharField(max_length=32)
    # token = models.CharField(‘token‘, max_length=128,default=None,blank=True,null=True)
    department = models.ForeignKey(Department, verbose_name=部门, blank=True, null=True, on_delete=models.CASCADE)
    host_groups = models.ManyToManyField(HostGroups, verbose_name=授权主机组, blank=True)
    bind_hosts = models.ManyToManyField(BindHosts, verbose_name=授权主机, blank=True)

    memo = models.TextField(备注, blank=True, null=True, default=None)
    date_joined = models.DateTimeField(blank=True, null=True, auto_now_add=True)
    valid_begin_time = models.DateTimeField(default=django.utils.timezone.now, help_text="yyyy-mm-dd HH:MM:SS")
    valid_end_time = models.DateTimeField(blank=True, null=True, help_text="yyyy-mm-dd HH:MM:SS")

    # 把哪个字段当做用户名
    USERNAME_FIELD = email
    # REQUIRED_FIELDS = [‘name‘,‘token‘,‘department‘,‘tel‘,‘mobile‘,‘memo‘]
    # 必须有的字段
    REQUIRED_FIELDS = [name]

    def get_full_name(self):
        # The user is identified by their email address
        return self.email

    def get_short_name(self):
        # The user is identified by their email address
        return self.email

    def __str__(self):  # __str__ on Python 2
        return self.email

    # def has_perm(self, perm, obj=None):
    #     "Does the user have a specific permission?"
    #     # Simplest possible answer: Yes, always
    #     return True
    def has_perms(self, perm, obj=None):
        "Does the user have a specific permission?"
        # Simplest possible answer: Yes, always
        return True

    def has_module_perms(self, app_label):
        "Does the user have permissions to view the app `app_label`?"
        # Simplest possible answer: Yes, always
        return True

    # @property
    # def is_staff(self):
    #     "Is the user a member of staff?"
    #     # Simplest possible answer: All admins are staff
    #     return self.is_admin
    @property
    def is_superuser(self):
        "Is the user a member of staff?"
        # Simplest possible answer: All admins are staff
        return self.is_admin

    objects = auth.UserManager()

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

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = CrazyEye账户
        verbose_name_plural = CrazyEye账户

        permissions = (
            (web_access_dashboard, 可以访问 审计主页),
            (web_batch_cmd_exec, 可以访问 批量命令执行页面),
            (web_batch_batch_file_transfer, 可以访问 批量文件分发页面),
            (web_config_center, 可以访问 堡垒机配置中心),
            (web_config_items, 可以访问 堡垒机各配置列表),
            (web_invoke_admin_action, 可以进行admin action执行动作),
            (web_table_change_page, 可以访问 堡垒机各配置项修改页),
            (web_table_change, 可以修改 堡垒机各配置项),
        )


最后还需要在配置文件加上:AUTH_USER_MODEL = web.UserProfile

 

以上是关于Django-admin自定义用户信息表的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——声明函数

VSCode自定义代码片段(vue主模板)

VSCode自定义代码片段6——CSS选择器

VS code自定义用户代码片段snippet

VSCode自定义代码片段8——声明函数

VSCode自定义代码片段——CSS动画