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 27 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 Python
Python 12306抢火车票脚本
Feb 07 Python
解决pycharm 安装numpy失败的问题
Dec 05 Python
tensorflow多维张量计算实例
Feb 11 Python
python实现密码强度校验
Mar 18 Python
python文件及目录操作代码汇总
Jul 08 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
python的html标准库
Apr 29 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
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
Javascript !!的作用
2008/12/04 Javascript
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
Python实现的一个简单LRU cache
2014/09/26 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
师范应届生语文教师求职信
2013/10/29 职场文书
护理实习自我鉴定
2013/12/14 职场文书
安全标准化汇报材料
2014/02/03 职场文书
环境卫生倡议书
2014/08/29 职场文书
2014年商场工作总结
2014/11/22 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
Fluentd搭建日志收集服务
2022/09/23 Servers