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 unicode特性
Nov 28 Python
Python实现合并字典的方法
Jul 07 Python
Python实时获取cmd的输出
Dec 13 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
Python实现的计数排序算法示例
Nov 29 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
scrapy爬虫完整实例
Jan 25 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
python直接获取API传递回来的参数方法
Dec 17 Python
python requests.post带head和body的实例
Jan 02 Python
python写日志文件操作类与应用示例
Jul 01 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
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
PHP微商城开源代码实例
2019/03/27 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
Python3如何解决字符编码问题详解
2017/04/23 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
师德师风演讲稿
2014/05/05 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
HTML基本元素标签介绍
2022/02/28 HTML / CSS