Python Django:创建新用户和个人资料

Python Django:创建新用户和个人资料,python,django,Python,Django,Django新手,在别人传递给我的代码的用户配置文件模型中找到了这个函数,但我一生都无法在文档中找到它,也无法在他的代码中的任何其他地方找到它。但是,包括用户身份验证在内的一切似乎都起作用了,所以不确定这是从哪里来的create\u new\u user\u和\u profile?另外,不确定这是否是做用户最好的方式,有人能给一些提示吗 def create_user_profile(sender, instance, created, **kwargs): if created:

Django新手,在别人传递给我的代码的用户配置文件模型中找到了这个函数,但我一生都无法在文档中找到它,也无法在他的代码中的任何其他地方找到它。但是,包括用户身份验证在内的一切似乎都起作用了,所以不确定这是从哪里来的
create\u new\u user\u和\u profile
?另外,不确定这是否是做用户最好的方式,有人能给一些提示吗

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)


class UserProfile(models.Model):
    user = models.OneToOneField(User)
    office_number = models.IntegerField(null=True)

    def initialize_static_fields(self, office_number):
        user = models.OneToOneField(User)
        self.office_number = office_number

    def create_new_user_and_profile(username, email, password, office_number):
        u = User.objects.create_user(username, email, password)
        u.get_profile().initialize_static_fields(office_number)

用户模型有一个create_user方法,但是默认情况下它不会创建配置文件,您可以在每次创建新用户时使用一个信号来创建配置文件,例如

def create_profile(sender, instance, created, **kwargs):
    profile = None
    if created:
        profile, created = Profile.objects.get_or_create(user=instance)

post_save.connect(create_profile, sender=User)

添加到模型中的方法是一个自定义方法,它创建一个用户并触发create_user_profile,然后用额外的信息进行补充。在我看来,这种方法不应该是CalscopeUserProfile的一部分,很可能属于(表单)视图(私有)或服务功能。

创建新用户和配置文件是一件事吗?因为我在他的代码里找不到它