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中设置变量访问权限的方法
Apr 27 Python
开始着手第一个Django项目
Jul 15 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Python 模拟购物车的实例讲解
Sep 11 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
Django Rest framework认证组件详细用法
Jul 25 Python
pygame实现成语填空游戏
Oct 29 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
python中os.remove()用法及注意事项
Jan 31 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 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中$_SERVER的详细参数与说明
2008/07/29 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python Requests 基础入门
2016/04/07 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
学习十八届三中全会精神实施方案
2014/02/17 职场文书
知识竞赛主持词
2014/03/26 职场文书
简爱电影观后感
2015/06/10 职场文书