您的位置:首页 > 编程语言 > Go语言

Django Customer User Models

2016-07-01 00:00 211 查看
摘要: Django 用户自定义 User类

models.py

from __future__ import unicode_literals
from utils.random_tool import get_uuid
from django.db import models
from django.utils import six, timezone
from django.contrib.auth.models import (
BaseUserManager, AbstractBaseUser, PermissionsMixin
)
from django.utils.translation import ugettext_lazy as _

# Create your models here.
class Manger(BaseUserManager):
def create_user(self, email, password=None):
if not email:
raise ValueError("User must have an email address")
user = self.model(
email=self.normalize_email(email)
)
user.user_id = get_uuid(user.email)
user.set_password(password)
user.save(using=self._db)
return user

def create_superuser(self, email, password):
user = self.create_user(
email=email,
password=password
)
user.is_superuser = True
user.is_staff = True
user.is_active = True
user.save(using=self._db)
return user

def get_by_natural_key(self, email):
return self.get(**{self.model.USERNAME_FIELD: email})

class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(verbose_name='email address', max_length=255, unique=True, )
user_id = models.CharField(max_length=255)
user_name = models.CharField(max_length=255)
nickname = models.CharField(max_length=255)
func_code = models.CharField(max_length=255)
login_ip = models.CharField(max_length=255)
tag = models.IntegerField(blank=True, null=True)
is_staff = models.BooleanField(_('staff status'), default=False, )
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
is_active = models.BooleanField(_('active'), default=False, )

objects = Manger()
USERNAME_FIELD = 'email'

def get_full_name(self):
if self.nickname:
return self.nickname
if self.user_name:
return self.user_name
return self.email

def get_short_name(self):
if self.nickname:
return self.nickname
if self.user_name:
return self.user_name
return self.email

def __str__(self):
return self.email

class ThirdUser(models.Model):
user_id = models.CharField(blank=False)
token = models.CharField()
weibo = models.CharField()
weixin = models.CharField()

setting.py

AUTH_USER_MODEL = "authenticate.User"
AUTHENTICATION_BACKENDS = [
'authenticate.backends.NSCloudBackend',
'django.contrib.authenticate.backends.ModelBackend',
]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: