user.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: user.py
  6. @date:2025/4/14 10:20
  7. @desc:
  8. """
  9. import uuid_utils.compat as uuid
  10. from django.db import models
  11. from common.utils.common import password_encrypt
  12. class User(models.Model):
  13. id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
  14. email = models.EmailField(unique=True, null=True, blank=True, verbose_name="邮箱", db_index=True)
  15. phone = models.CharField(max_length=20, verbose_name="电话", default="", db_index=True)
  16. nick_name = models.CharField(max_length=150, verbose_name="昵称", unique=True, db_index=True)
  17. username = models.CharField(max_length=150, unique=True, verbose_name="用户名", db_index=True)
  18. password = models.CharField(max_length=150, verbose_name="密码")
  19. role = models.CharField(max_length=150, verbose_name="角色")
  20. source = models.CharField(max_length=10, verbose_name="来源", default="LOCAL", db_index=True)
  21. is_active = models.BooleanField(default=True, db_index=True)
  22. language = models.CharField(max_length=10, verbose_name="语言", null=True, default=None)
  23. create_time = models.DateTimeField(verbose_name="创建时间", auto_now_add=True, null=True, db_index=True)
  24. update_time = models.DateTimeField(verbose_name="修改时间", auto_now=True, null=True, db_index=True)
  25. USERNAME_FIELD = 'username'
  26. REQUIRED_FIELDS = []
  27. class Meta:
  28. db_table = "user"
  29. def set_password(self, row_password):
  30. self.password = password_encrypt(row_password)
  31. self._password = row_password