在 Django 中创建新用户后,如何自动创建新配置文件?

时间:2021-01-26 20:32:06

标签: django

我正在开发的 Django 应用程序目前遇到了这个问题。

我有一个模型类 Profile,我想自动创建它并分配给新用户。想知道我怎么能做到这一点?我也设置了一个自定义用户模型。

class Profile(models.Model):
   user = models.OneToOneField(User, on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:1)

您可以尝试创建一个信号:

在使用 User 信号时保存 post_save 模型的记录后执行。

from django.dispatch import receiver
from django.db.models.signals import post_save
from django.contrib.auth.models import User

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    try:
       if created:
          Profile.objects.create(user=instance).save()
    except Exception as err:
       print(f'Error creating user profile!\n{err}')

这里 instance 是用户对象,senderUser 模型 & created 是一个布尔对象,用于检查保存用户后是否创建了新记录模型不是。

您可以over here获得更多相关信息。

相关问题