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首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python 类的继承实例详解
Mar 25 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
python对于requests的封装方法详解
Jan 03 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
如何通过python实现人脸识别验证
Jan 17 Python
详解python变量与数据类型
Aug 25 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
关于python中模块和重载的问题
Nov 02 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 将excel导入mysql
2009/11/09 PHP
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
Python编码类型转换方法详解
2016/07/01 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
PyQt5实现拖放功能
2018/04/25 Python
python实现自主查询实时天气
2018/06/22 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python实现吃苹果小游戏
2020/03/21 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
建筑经济管理专业求职信分享
2014/01/06 职场文书
《九色鹿》教学反思
2014/02/27 职场文书