一尘不染

使用django-allauth时如何自定义用户配置文件

django

我有一个django-allauth应用程序的django项目。我需要在注册时从用户那里收集其他数据。我在这里遇到了类似的问题, 但不幸的是,没有人回答个人资料定制部分。

根据提供的文档django-allauth:

ACCOUNT_SIGNUP_FORM_CLASS(= None)

指向自定义表单类(例如‘myapp.forms.SignupForm’)的字符串,在注册过程中使用该字符串来询问用户其他输入(例如,简报注册,生日)。此类应实现一种‘save’方法,接受新注册的用户作为其唯一参数。

我是django的新手,正在为此而苦苦挣扎。有人可以提供这种自定义表单类的示例吗?我是否还需要添加模型类以及指向用户对象的链接,就像这样 ?


阅读 426

收藏
2020-03-25

共1个答案

一尘不染

假设你想在注册时询问用户的名字/姓氏。你需要将这些字段设置为你自己的形式,如下所示:

class SignupForm(forms.Form):
    first_name = forms.CharField(max_length=30, label='Voornaam')
    last_name = forms.CharField(max_length=30, label='Achternaam')

    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.save()

然后,在你的设置中指向此表单:

ACCOUNT_SIGNUP_FORM_CLASS = 'yourproject.yourapp.forms.SignupForm'

就这样。

2020-03-25