首页 > 其他分享 >custom use 定义 以及uuid 做pk

custom use 定义 以及uuid 做pk

时间:2023-07-16 11:33:40浏览次数:27  
标签:username use uuid models None custom validators import True

 applicaton/models/user.py

import uuid

from django.contrib.auth.models import AbstractUser
from django.contrib.auth.validators import UnicodeUsernameValidator
from django.core.validators import RegexValidator
from django.db import models


# カスタムユーザクラスを定義
class User(AbstractUser):
    username_validator = UnicodeUsernameValidator()

    class Role(models.IntegerChoices):
        MANAGEMENT = 0
        GENERAL = 1
        PART_TIME = 2

    # 不要なフィールドはNoneにすることができる
    first_name = None
    last_name = None
    date_joined = None
    groups = None
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    employee_number = models.CharField(
        unique=True,
        validators=[RegexValidator(r"^[0-9]{8}$")],
        max_length=8,
        # 管理者のログイン画面で社員番号と表示される
        verbose_name="社員番号",
    )
    username = models.CharField(
        max_length=150,
        unique=True,
        validators=[username_validator],
    )
    email = models.EmailField(max_length=254, unique=True)
    role = models.PositiveIntegerField(
        choices=Role.choices, default=Role.PART_TIME
    )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    # デフォルトはusernameだが今回は社員番号を指定
    USERNAME_FIELD = "employee_number"
    # uniqueのemailとusernameを指定
    REQUIRED_FIELDS = ["email", "username"]

    class Meta:
        ordering = ["employee_number"]
        db_table = "User"

    def __str__(self):
        return self.username

カスタムユーザを作成後は以下をsettings.pyに記述します
application内のUserクラスを参照しているのでmodels.pyに記載していて別ファイルに移動させたとしても下記を変更する必要がありません
settings.py

AUTH_USER_MODEL = "application.User"

 

标签:username,use,uuid,models,None,custom,validators,import,True
From: https://www.cnblogs.com/lxgbky/p/17557615.html

相关文章

  • 加速LakeHouse ACID Upsert的新写时复制方案
    概述随着存储表格式ApacheHudi、ApacheIceberg和DeltaLake的发展,越来越多的公司正在这些格式的基础上构建其Lakehouse,以用于许多用例,例如增量摄取。但当数据量增加时,更新插入的速度有时仍然是一个问题。在存储表中,使用ApacheParquet作为主要文件格式。在本文中我们......
  • python WM_MOUSEWHEEL
    实现"pythonWM_MOUSEWHEEL"的步骤1.了解WM_MOUSEWHEEL消息WM_MOUSEWHEEL是Windows消息之一,用于处理鼠标滚轮相关的操作。在Python中,我们可以使用win32api和win32con库来发送和处理Windows消息。2.安装所需库在开始编写代码之前,你需要安装pywin32库来操作Windows消息。可以使......
  • 配置问题-Error creating bean with name 'user' defined in class path resource [be
    正在学习IoC使用的jdk版本为jdk17依赖为:<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version></dependen......
  • 【大数据实战】你真的了解 Clickhouse 投影吗?
    ......
  • cpuset.cpus.effective: no such file or directory (修改 docker cgroup 版本的方法)
    要切换使用v1版cgroup,需要做如下配置: vim/etc/default/grub   GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0" update-grubreboot  完美解决 ......
  • vue3项目 运行 报错 Cannot assign to "b" because it is a constant
    环境依赖node18.16.0vite4.4.4vue 3.2.47背景当前错误与环境依赖关系不大,是由于我在打包的文件写的代码错误导致的,一般情况不会有这个错报错信息X[ERROR]Cannotassignto"b"becauseitisaconstantThesymbol"b"wasdeclaredaconstanthere:原因将r......
  • caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication
    1importcom.fasterxml.jackson.annotation.JsonAutoDetect;2importcom.fasterxml.jackson.annotation.PropertyAccessor;3importcom.fasterxml.jackson.databind.DeserializationFeature;4importcom.fasterxml.jackson.databind.ObjectMapper;5importcom.f......
  • Clickhouse、Mysql、Presto数据库解析Json数据
    一、Clickhouse解析Json1、visitParamExtractBool(json,name)→提取json中的name字段,返回UInt8,0或1  例:visitParamExtractBool('{"name":true}','name')ASbool2、visitParamExtractInt(json,name)→提取json中的name字段,返回Int型的值  例:visitParamExtractInt......
  • 畅捷通T+ GetStoreWarehouseByStore 反序列化分析
    漏洞描述畅捷通T+前台存在反序列化漏洞,攻击者可直接利用此漏洞执行任意命令影响版本T+13.0、T+16.0漏洞分析漏洞主要是因为ajaxPro组件存在CVE-2021-23758,但是这个漏洞有个要求是传输的参数类型必须是object通过反编译App_Code.dll的Ufida.T.CodeBehind._PriorityLevel中G......
  • 如何解决 React.useEffect() 的无限循环
    [如何解决React.useEffect()的无限循环-react.useeffect](https://www.51cto.com/article/654928.html)使用useEffect()时,你可能会遇到一个陷阱,那就是组件渲染的无限循环。在这篇文章中,会讲一下产生无限循环的常见场景以及如何避免它们。 useEffect()主要用来管理副作用,比......