所以我有以下代码:
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import UserProfile
@receiver(post_save, sender=User)
def auto_create_profile(sender, **kwargs):
instance = kwargs['instance']
created = kwargs['created']
if created:
profile = UserProfile(foo=foo)
profile.user = instance
profile.save()
前面的代码和在注册 View 上创建配置文件有什么区别?
def some_view(request):
#save the user and then
profile = UserProfile(foo=foo, user=user)
profile.save()
最佳答案
使用post_save
,当以其他方式创建用户帐户时,也会创建用户个人资料,例如:
- 使用
manage.py shell
控制台 - 使用 django 管理
- 使用其他 View
- 使用第三方软件包,例如 python-social-auth
关于python - 使用 post_save 信号或执行 View 中的逻辑有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671417/