Django 使用RegistrationView时填充UserProfile

Django 使用RegistrationView时填充UserProfile,django,django-registration,Django,Django Registration,我有一个自定义用户配置文件: class UserProfile(models.Model): BUYER_USER = 1 CLIENT_USER = 2 ARTIST_USER = 3 ADMIN_USER = 3 USER_CHOICES = ( (BUYER_USER, 'Buyer'), (CLIENT_USER, 'Client'), (ARTIST_USER, 'Artist'),

我有一个自定义用户配置文件:

class UserProfile(models.Model):
    BUYER_USER = 1
    CLIENT_USER = 2
    ARTIST_USER = 3
    ADMIN_USER = 3
    USER_CHOICES = (
        (BUYER_USER, 'Buyer'),
        (CLIENT_USER, 'Client'),
        (ARTIST_USER, 'Artist'),
        (ADMIN_USER, 'Admin'),
    )

    # This field is required.
    user = models.OneToOneField(User)

    usertype = models.IntegerField(choices=USER_CHOICES, default=BUYER_USER)
    dob = models.DateField(blank=True, null=True)
    address = models.TextField(max_length=8, blank=True, null=True)
我正在使用django registration redux来管理帐户。内置注册视图具有以下布局:

但我想转到以下布局:

我知道如何更改模板并调整与
用户
模型相关字段的布局,但我不知道如何告诉
django registration redux
根据
RegistrationView
表单中输入的数据填充
UserProfile


这有可能吗?怎么做?

我认为可能的答案是为UserProfile创建一个表单,将其添加到redux注册视图中。找到view函数,查看他们在哪里检查表单是否使用
is\u valid()
提交,并将您的Userform添加到if块,以检查它是否也有效。要使用redux注册表填充UserProfile,可以执行以下操作

user_form.save(commit=false)
user_form.user = registration_form.user
user_form.save()
这样,UserProfile用户字段将由注册模型中的
user
字段填充

抱歉,如果这是完全错误的,因为我不熟悉注册redux软件包,但我通常是这样做的

以下是github的要点,介绍如何使用基于类的视图:


在这种情况下,您需要编辑registration redux
registration/views.py

谢谢!我不得不对此表示怀疑:我已经看到
form\u valid
register
方法只接受一个表单。我怎么能在这里处理两个表单?@gonvaled发现CBV不能同时处理两个表单,但是你可以在单独的验证中处理两个表单,如果你同时需要两个表单,你需要使用函数视图,但在这种情况下,我想你不需要这样。就像我在用户注册时编写的代码块一样,然后将他们重定向到Userprofile表单页面来填写其余的内容?只是另一个建议。甚至你也可以使用FV来验证注册redux表单和你的userprofile表单!仍然在思考这个问题:实际上,我不需要两个表单,只需要一个表单,它将被分成两个模型。@gonvaled我想我找到了你要找的东西,他在一个表单中使用了一个用户模型和一个用户配置文件模型。我猜你也想做什么。