Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from django.db import models
  4. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  5.  
  6. class MfUserManager(BaseUserManager):
  7.     def create_user(self, username, vk_user_id, first_name, last_name, password=None):
  8.         if not username:
  9.             raise ValueError('User must have an username')
  10.  
  11.         user = self.model(
  12.             username = username,
  13.             first_name = first_name,
  14.             last_name = last_name,
  15.             vk_user_id = vk_user_id
  16.         )
  17.         user.set_password(password)
  18.         user.save(using=self._db)
  19.         return user
  20.  
  21.     def create_superuser(self, username, first_name, last_name, password, vk_user_id=0):
  22.         user = self.create_user(
  23.             username = username,
  24.             vk_user_id = vk_user_id,
  25.             first_name = first_name,
  26.             last_name = last_name,
  27.             password = password
  28.         )
  29.         user.is_admin = True
  30.         user.save(self._db)
  31.         return user
  32.  
  33. class MfUser(AbstractBaseUser):
  34.     username = models.CharField(max_length=20, unique=True)
  35.     vk_user_id = models.IntegerField(blank=True)
  36.     first_name = models.CharField(max_length=30)
  37.     last_name = models.CharField(max_length=30)
  38.     is_admin = models.BooleanField(default=False)
  39.  
  40.     objects = MfUserManager()
  41.  
  42.     USERNAME_FIELD = 'username'
  43.     REQUIRED_FIELDS = ['first_name', 'last_name']
  44.  
  45.     def get_full_name(self):
  46.         return '%s %s' % (self.first_name, self.last_name)
  47.     def get_short_name(self):
  48.         return self.first_name
  49.  
  50.     def __str__(self):
  51.         return '%s %s' % (self.first_name, self.last_name)
  52.  
  53.     @property
  54.     def is_staff(self):
  55.         return self.is_admin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement