本篇文章給大家帶來的內容是關於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的使用方法介紹(附源碼)的詳細內容,更多請關注其它相關文章!
更多技巧請《轉發 + 關注》哦!