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 相关文章推荐
使用IPython来操作Docker容器的入门指引
Apr 08 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
Python实现的双色球生成功能示例
Dec 18 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
python Cartopy的基础使用详解
Nov 01 Python
Python3 如何开启自带http服务
May 18 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
js选项卡的制作方法
2017/01/23 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
swiper实现导航滚动效果
2020/12/13 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python发展简史 Python来历
2019/05/14 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Python容器类型公共方法总结
2020/08/19 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
大学专科自荐信
2014/06/17 职场文书
2014年安全生产责任书
2014/07/22 职场文书
小学总务工作总结
2015/08/13 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书