PHP前端开发

Django教程中User-Profile的使用方法介绍(附源码)

百变鹏仔 3小时前 #Python
文章标签 使用方法

本篇文章给大家带来的内容是关于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 modelsfrom django.contrib.auth.models import User#信号from django.db.models.signals import post_save,post_initfrom django.dispatch import receiverclass 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()