本篇文章给大家带来的内容是关于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()
相关推荐:
在django的session中使用user对象的方法
五步教你实现使用nginx+uwsgi+django方法部署django程序
以上就是django教程中user-profile的使用方法介绍(附源码)的详细内容。
