本篇文章给大家带来的内容是关于django教程中user-profile的使用方法介绍(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
Profile作用:User内置的字段不够完善,导致创建的用户信息单一,Profile就是为了对User进行扩展,即丰富用户信息
在models中创建Profile类,添加字段user与User形成OneToOne关系以及级联删除
on_delete=models.CASCADE
引入与信号相关的包
from django.dispatch import receiverfrom django.db.models.signals import post_save
装饰器装饰函数,User创建时信号触发自动创建Profile的user字段并关联;User保存时信号触发,Profile自动保存
源码
from django.db import models
from django.contrib.auth.models import User
#信号
from django.db.models.signals import post_save,post_init
from django.dispatch import receiver
class Profile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
birth = models.DateField(null=True,blank=True)
def __str__(self):
return self.user.username
class Meta:
db_table = 'profile'
@receiver(post_save,sender=User)
def create_user_profile(sender,instance,created,**kwargs):
print('创建User')
if created:
Profile.objects.create(user=instance)
@receiver(post_save,sender=User)
def save_user_profile(sender,instance,**kwargs):
print('保存User')
instance.profile.save()相关推荐:
五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
以上就是Django教程中User-Profile的使用方法介绍(附源码)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号