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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

我有一个django-allauth应用程序的django项目。我需要在注册时从用户那里收集更多数据。

根据文档django-allauth

ACCOUNT_SIGNUP_FORM_CLASS (=None) 指向‘myapp.forms.SignupForm’注册期间使用的自定义表单类(例如)的字符串,以询问用户是否需要其他输入(例如简报注册,出生日期)。该类应实现一种‘save’方法,接受新注册的用户作为其唯一参数。

我对django很陌生,有人可以提供一个这样的自定义表单类的例子吗?我是否需要添加一个模型类,以及一个到用户对象

的链接 ?

提问于
用户回答回答于

假设你想在注册过程中向用户询问他的姓名。你需要将这些字段以自己的形式放置,如下所示:

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'
用户回答回答于
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()

扫码关注云+社区

领取腾讯云代金券