首页 > 其他 > 详细

django user

时间:2015-10-19 17:39:43      阅读:369      评论:0      收藏:0      [点我收藏+]


方法一:继承AbstractUser 不过需要在setting中指出AUTH_USER_MODEL
该方法是 在原有的默认user表上增加字段
class suhao_user(AbstractUser):
    age = models.IntegerField(default=18)
方法二:继承AbstractBaseUser,原有3个字段 password,last_login,is_active
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
from django.db import models
from django.utils.translation import ugettext_lazy as _

class suhao_user_manage(BaseUserManager):
    def create_user(self, username, password, **extra_fields):
        user = self.model(username=username, is_staff=True,  is_superuser=False,
                           **extra_fields)
        user.set_password(password)
        user.save(using=self._db)

        return user

    def create_superuser(self, username, password, **extra_fields):
        user = self.model(username=username, is_staff=True,  is_superuser=True,
                           **extra_fields)
        user.set_password(password)
        user.save(using=self._db)

        return user


class suhao_user(AbstractBaseUser, PermissionsMixin):
    username= models.CharField(verbose_name=u"用户昵称", max_length=30, unique=True)
    age = models.IntegerField(default=0)
    is_staff = models.BooleanField(_(‘staff status‘), default=False)
    USERNAME_FIELD = ‘username‘
    objects = suhao_user_manage()

    def get_full_name(self):
        return self.username

    def get_short_name(self):
        return self.username
    ## 其中is_staff是必须字段,下面的2个方法也一定要重写
方法3:使用OneToOneField
class suhao_info(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    age = models.IntegerField(default=18)
    ....


django user

原文:http://my.oschina.net/u/1000190/blog/518926

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!