user.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. session_key = models.CharField(max_length=40, blank=True)
  38. objects = UserManager()
  39. USERNAME_FIELD = 'username'
  40. REQUIRED_FIELDS = []
  41. def is_admin(self):
  42. if self.identity == 'admin':
  43. return True
  44. else:
  45. return False
  46. class Meta:
  47. app_label = 'api'