我正在开发的 Django 应用程序目前遇到了这个问题。
我有一个模型类 Profile,我想自动创建它并分配给新用户。想知道我怎么能做到这一点?我也设置了一个自定义用户模型。
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
答案 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
是用户对象,sender
是 User
模型 & created
是一个布尔对象,用于检查保存用户后是否创建了新记录模型不是。
您可以over here获得更多相关信息。