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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
python实现给数组按片赋值的方法
Jul 28 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
python requests 库请求带有文件参数的接口实例
Jan 03 Python
python用match()函数爬数据方法详解
Jul 23 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 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面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
express 项目分层实践详解
2018/12/10 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
python dict.get()和dict['key']的区别详解
2016/06/30 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python之列表实现栈的工作功能
2019/01/28 Python
python反编译学习之字节码详解
2019/05/19 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
四年的大学生生活自我评价
2013/12/09 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
离婚案件被告代理词
2015/05/23 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js