Django 注册视图中的表单处理为';CreateView';具有多个值

Django 注册视图中的表单处理为';CreateView';具有多个值,django,django-models,django-forms,django-generic-views,Django,Django Models,Django Forms,Django Generic Views,我有“个人资料”模型,如: class Profile(models.Model): user = models.OneToOneField(User, related_name='user') nickname = models.CharField(max_length=100, name='nickname') avatar = models.FileField() def __str__(self): return self.nicknam

我有“个人资料”模型,如:

class Profile(models.Model):
    user = models.OneToOneField(User, related_name='user')
    nickname = models.CharField(max_length=100, name='nickname')
    avatar = models.FileField()

    def __str__(self):
        return self.nickname

    def date_joined(self):
        return self.user.date_joined
我有一张报名表,比如:

class SignUpForm(UserCreationForm):
    nickname = forms.CharField(label='nickname', max_length=100, help_text='Enter your nickname', required=True)
    avatar = forms.ImageField(label='Avatar', help_text='Upload your picture')
我想让注册视图通过给定的表单获取用户的个人资料,所以我创建了一个创建视图,如:

class SignUpView(CreateView):
    form_class = SignUpForm
    template_name = '[path_to_template]/signup.html'
    success_url = reverse_lazy('base')

但它不会在数据库的概要文件表中为同一用户创建概要文件,而只是创建一个用户。这就像没有“昵称”或“阿凡达”永远不存在的形式。如何获得有关“用户”的额外信息并为“用户”创建“个人资料”?

我找到了一种解决方法。我刚刚从CreateView重写了formValid方法。如上所述


当您想要创建个人资料时,您是否已经有用户


我刚刚保存了一个用户,然后为该用户创建了一个新的配置文件。

当您想要创建一个
配置文件时,您是否已经有一个
用户
?如果我想在注册时同时为我的用户创建配置文件,您的意思是这不是我的配置文件的正确模式?