django自定义用户表

django中已经给我生成默认的User表,其中的字段已经可以满足我们的日常需求。

但有时候,我们需要更多的字段,我们就可以自定义。来替换django自带的User表。

#models.py

from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, verbose_name=u‘昵称‘)
    birthday = models.DateField(verbose_name=u‘生日‘, null=True, blank=True)
    gender = models.CharField(max_length=10, choices=(("male", u‘男‘), ("female", u‘女‘)), default=‘female‘)
    address = models.CharField(max_length=11, verbose_name=u‘地址‘, null=True, blank=True)
    image = models.ImageField(upload_to=‘image/%Y/%m‘, default=u"image/default.png", max_length=100)
    phone = models.CharField(max_length=11, verbose_name=u"手机号码", null=True, blank=True)
    # image依赖Pillow

    class Meta:
        verbose_name = u"用户信息"
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.username

#adminx.py

from xadmin.plugins.auth import UserAdmin

class UserProfileAdmin(UserAdmin):
    pass

#settings.py

INSTALLED_APPS = [
    ...
    ‘users‘,
    ....
]

AUTH_USER_MODEL="users.UserProfile"

然后就可以makemigrations,migrate

然后就可以创建超级用户。如果之前创建过,会被删除,需要重新创建。

时间: 2024-08-10 10:41:41

django自定义用户表的相关文章

Django自定义用户表替换默认用户表认证

1.自定义用户表 from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class UserProfile(AbstractUser):   ##引用Django内置的AbstractUser表,并添加下列字段     nick_name = models.CharField(max_length=50,default="",

django 自定义用户表替换系统默认表

首先新建一个users应用,编写这个应用的models类. from django.contrib.auth.models import AbstractUser class UserProfile(AbstractUser): ...... 然后在settings里面加入应用. 最后重载用户model,如下: AUTH_USER_MODEL = "users.UserProfile" 最最后:makemigrations和migrate  根据提示输入YES,删除系统USER表,新建

Django自定义用户认证

自定义一个用户认证 详细参考官方文档: https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#django.contrib.auth.models.PermissionsMixin.has_perms 一.创建用户的表 UserProfile():存放用户信息的表 UserProfileManager(): 用户创建用户的类方法 1.生成一个单独的Moel文件专门用来存放用户表 #!/usr/bin/env python #

Django 自定义用户认证

Django 自定义用户认证 Django附带的认证对于大多数常见情况来说已经足够了,但是如何在 Django 中使用自定义的数据表进行用户认证,有一种较为笨蛋的办法就是自定义好数据表后,使用OnetoOne来跟 Django 的表进行关联,类似于这样: from django.contrib.auth.models import User class UserProfile(models.Model): """ 用户账号表 """ user =

openfire使用自定义用户表

openfire使用自定义用户表 - nomousewch的专栏 - 博客频道 - CSDN.NET 在最近的项目中使用openfire服务器实现消息推送功能,如果使用openfire自带的用户表,需要维护两张用户表,不是很方便,如果openfire能够直接使用现有系统的用户表就方便多了,而事实上openfire已经为我们考虑到了这一点,我们只需要做一些相关配置就可以了. 原理 研究了下openfire的源码,发现实现此点的关键在于data provider的应用,简单来说,就是在程序中需要用到

Django自定义用户认证系统Customizing authentication

扩展已有的用户模型Extending the existing User model 有两种方法来扩展默认的User Model而不用重写自己的模型.如果你不需要改变存储在数据库中的字段,而只是需要改变Model的行为,您可以创建一个基于User的代理Model.允许的行为包括默认的ordering,custom managers, 或者 custom model methods. 如果你想存储与User有关的信息,可以使用一个OneToOneField字段关联到一个存储额外信息的Model.这

django 自定义用户user模型的三种方法

来源:http://www.jb51.net/article/57527.htm django version: 1.7.1 最简单的推荐:使用abstractuser扩充fields 复制代码代码如下: profiles/models.py from django.db import modelsfrom django.contrib.auth.models import AbstractUserfrom django.utils.translation import ugettext_laz

django自定义管理表单

admin.py from django.contrib import admin # Register your models here. from .models import Question,Choice class ChoiceInline(admin.TabularInline):     model = Choice     extra = 3 class QuestionAdmin(admin.ModelAdmin):     list_display = ('question_

django之重构用户表

一.django自定义用户表格式(3.0.0) 数据库: Model类: class AbstractUser(AbstractBaseUser, PermissionsMixin): """ An abstract base class implementing a fully featured User model with admin-compliant permissions. Username and password are required. Other fie