继承AbstractUser

1、创建users app

 

2、重写Django auth_user表

Django默认创建的auth_user表中已有很多字段,但是还不能满足我们的需求,因此我们需要扩充

 

Django默认创建的auth_user表是通过 django.contrib.auth.models.py 中的 AbstractUser这个类去定义的,

我们在这里自定义一个UserProfile类来继承AbstractUser这个类

# _*_ coding:utf-8 _*_

from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractUser   #import 这个类


class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=20, verbose_name=u"昵称", default=u"")
    birthday = models.DateField(verbose_name=u"生日", null=True, blank=True)
    gender = models.CharField(choices=(("male", u""), ("female", u"")), default="female")
    address = models.CharField(max_length=100, default=u"")
    mobile = models.CharField(max_length=11, null=True, blank=True)
    image = models.ImageField(upload_to="image/%Y/%m", default=u"image/default.png", max_length=100)

    class Meta:
        verbose_name = u"用户信息"
        verbose_name_plural = verbose_name
        db_table = "userprofile"
        
    def __unicode__(self):
        return self.username

 

编辑settings.py添加users app ,并修改为自定义的auth model

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
]

AUTH_USER_MODEL = "users.UserProfile"  #修改为自定义的model

 

应为在表字段中有添加ImageField,所以需要安装pillow(python图片处理库)

C:\Users\gck1d6o>workon mxonline
(mxonline) C:\Users\gck1d6o>pip install pillow

 

然后在生成表

makemigrations users

migrate users

 

posted @ 2017-02-27 01:39  Vincen_shen  阅读(759)  评论(0)    收藏  举报