Django——User-Profile
2018-09-18 06:45:05来源:博客园 阅读 ()
Profile作用:User内置的字段不够完善,导致创建的用户信息单一,Profile就是为了对User进行扩展,即丰富用户信息
- 在models中创建Profile类,添加字段user与User形成OneToOne关系以及级联删除
on_delete=models.CASCADE
- 引入与信号相关的包
from django.dispatch import receiver from django.db.models.signals import post_save
- 装饰器装饰函数,User创建时信号触发自动创建Profile的user字段并关联;User保存时信号触发,Profile自动保存
- 源码
1 from django.db import models 2 from django.contrib.auth.models import User 3 #信号 4 from django.db.models.signals import post_save,post_init 5 from django.dispatch import receiver 6 7 class Profile(models.Model): 8 user = models.OneToOneField(User,on_delete=models.CASCADE) 9 birth = models.DateField(null=True,blank=True) 10 11 def __str__(self): 12 return self.user.username 13 14 class Meta: 15 db_table = 'profile' 16 17 18 @receiver(post_save,sender=User) 19 def create_user_profile(sender,instance,created,**kwargs): 20 print('创建User') 21 if created: 22 Profile.objects.create(user=instance) 23 24 @receiver(post_save,sender=User) 25 def save_user_profile(sender,instance,**kwargs): 26 print('保存User') 27 instance.profile.save()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:python搭建虚拟环境
- Django项目中使用qq第三方登录。 2019-08-13
- Django和前端用ajax传输json等数据 2019-08-13
- Django基本知识 2019-08-13
- JavaScript获取Django模板中指定键值的数据,使用过滤器 2019-08-13
- django框架使用及创建项目 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash