user.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from django.db import models
  2. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  3. identities = [
  4. ('user', 'user'),
  5. ('admin', 'administrator'),
  6. ]
  7. class UserManager(BaseUserManager):
  8. def create_user(self, username, password):
  9. if password == None or username == None:
  10. raise ValueError("用户名或密码为空")
  11. user = self.model(
  12. username = username,
  13. displayname = username,
  14. identity = 'user',
  15. )
  16. user.set_password(password)
  17. user.save()
  18. return user
  19. def create_superuser(self, username, password):
  20. if password == None or username == None:
  21. raise ValueError("用户名或密码为空")
  22. user = self.model(
  23. username = username,
  24. displayname = username,
  25. identity = 'admin',
  26. )
  27. user.set_password(password)
  28. user.save()
  29. return user
  30. # Create your models here.
  31. class User(AbstractBaseUser):
  32. username = models.CharField(max_length=50, unique=True)
  33. password = models.CharField(max_length=100)
  34. displayname = models.CharField(max_length=32)
  35. create_time = models.DateField(auto_now_add=True)
  36. identity = models.CharField(default='user', max_length=16, choices=identities)
  37. objects = UserManager()
  38. USERNAME_FIELD = 'username'
  39. REQUIRED_FIELDS = []
  40. def is_admin(self):
  41. if self.identity == 'admin':
  42. return True
  43. else:
  44. return False
  45. class Meta:
  46. app_label = 'api'