Django教程中User-Profile的使用方法介紹(

2019-10-29     科技i關注

本篇文章給大家帶來的內容是關於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()

相關推薦:

在Django的session中使用User對象的方法

五步教你實現使用Nginx+uWSGI+Django方法部署Django程序

以上就是Django教程中User-Profile的使用方法介紹(附源碼)的詳細內容,更多請關注其它相關文章!

更多技巧請《轉發 + 關注》哦!

文章來源: https://twgreatdaily.com/wBTHFG4BMH2_cNUgrU5T.html