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程序与服务器连接的WSGI接口
Apr 29 Python
linux下python抓屏实现方法
May 22 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
python实现汉诺塔算法
Mar 01 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
python 字符串追加实例
Jul 20 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
python第三方库学习笔记
Feb 07 Python
Python如何实现邮件功能
May 27 Python
python中的django是做什么的
Jul 31 Python
Python多线程的退出控制实现
Aug 10 Python
Python Socket多线程并发原理及实现
Dec 11 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下使用SMTP发邮件的代码
2008/01/10 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
python网络编程之读取网站根目录实例
2014/09/30 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python实现同一局域网下传输图片
2020/03/20 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
如何利用python 读取配置文件
2021/01/06 Python
实习教师自我鉴定
2013/09/27 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
中英文求职信范文
2015/03/19 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书