Django使用Profile扩展User模块方式


Posted in Python onMay 14, 2020

首先创建Profile应用

python manage.py startapp profiles

profiles/models.py

# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):
  user = models.OneToOneField(User)
  nickname = models.CharField(max_length=16, default='', blank=True)
  sex = models.IntegerField(default=0)
  phone = models.CharField(max_length=16, default='', blank=True)

  def __str__(self):
    return self.nickname

  def __unicode__(self):
    return self.nickname

def create_user_profile(sender, instance, created, **kwargs):
  if created:
    profile = UserProfile()
    profile.user = instance
    profile.save()

post_save.connect(create_user_profile, sender=User)

profiles/admin.py

# -*- coding: utf-8 -*-
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from .models import UserProfile

class ProfileInline(admin.StackedInline):
  model = UserProfile
  max_num = 1
  can_delete = False

class UserProfileAdmin(UserAdmin):
  inlines = [ProfileInline, ]

admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)

settings.py

添加

AUTH_PROFILE_MODULE = 'profiles.UserProfile'

测试

$ python manage.py syncdb
$ python manage.py shell
>>> from django.contrib.auth.models import User
>>> user = User()
>>> user.username='testuser'
>>> user.save()
>>> User.objects.all()[0].userprofile

补充知识:django中登录到accounts/profile/的解决方案

Django使用Profile扩展User模块方式

在project的setting里加一句话就Okay!

LOGIN_REDIRECT_URL = '/index'

以上这篇Django使用Profile扩展User模块方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之list和str比较
Sep 20 Python
使用Python实现一个简单的项目监控
Mar 31 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
python检测服务器端口代码实例
Aug 31 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
python环境下安装opencv库的方法
Mar 05 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
python实现剪贴板的操作
Jul 01 Python
python网络编程之五子棋游戏
May 14 #Python
Jupyter notebook如何修改平台字体
May 13 #Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 #Python
Django 允许局域网中的机器访问你的主机操作
May 13 #Python
Django 用户登陆访问限制实例 @login_required
May 13 #Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 #Python
PyQt5 控件字体样式等设置的实现
May 13 #Python
You might like
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
扩展String功能方法
2006/09/22 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
python简单文本处理的方法
2015/07/10 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
新大陆软件面试题
2016/11/24 面试题
财务会计专业应届毕业生求职信
2013/10/18 职场文书
餐饮管理自我介绍信
2014/01/15 职场文书
户外宣传策划方案
2014/05/25 职场文书
企业宣传工作方案
2014/06/02 职场文书
2014年班干部工作总结
2014/11/25 职场文书
党员转正介绍人意见
2015/06/03 职场文书
DE1107机评
2022/04/05 无线电