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类定义和类继承详解
May 08 Python
python获取目录下所有文件的方法
Jun 01 Python
python中redis的安装和使用
Dec 04 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
Python日志模块logging基本用法分析
Aug 23 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
Python列表对象实现原理详解
Jul 01 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
python实现按关键字筛选日志文件
Dec 24 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
Python实战之疫苗研发情况可视化
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
php+redis实现商城秒杀功能
2020/11/19 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
lib.utf.js
2007/08/21 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript 打印页面代码
2009/03/24 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python实用代码片段收集贴
2015/06/03 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
大专学生推荐信范文
2013/11/19 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
消防宣传口号
2014/06/16 职场文书
小学社会实践活动总结
2014/07/03 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python
python中mongodb包操作数据库
2022/04/19 Python