亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在使用django-allauth時自定義用戶配置文件

如何在使用django-allauth時自定義用戶配置文件

Smart貓小萌 2019-07-29 15:37:31
如何在使用django-allauth時自定義用戶配置文件我有一個django-allauth app的django項目。我需要在注冊時從用戶處收集其他數據。我在這里遇到了類似的問題, 但不幸的是,沒有人回答了個人資料定制部分。根據提供的文件django-allauth:ACCOUNT_SIGNUP_FORM_CLASS(= None)指向自定義表單類(例如‘myapp.forms.SignupForm’)的字符串,用于在注冊期間向用戶請求其他輸入(例如,簡報注冊,出生日期)。此類應實現一個‘save’方法,接受新注冊的用戶作為其唯一參數。我是django的新手,我正在努力解決這個問題。有人可以提供這種自定義表單類的示例嗎?我是否需要添加一個模型類,以及一個鏈接到喜歡的用戶對象這個 ?
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

假設您想在注冊期間詢問用戶他的姓/名。您需要將這些字段放在您自己的表單中,如下所示:

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'

就這樣。


查看完整回答
反對 回復 2019-07-29
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

使用pennersr建議的解決方案,我得到了一個DeprecationWarning:

DeprecationWarning: The custom signup form must offer a def signup(self, request, user) method DeprecationWarning)

這是因為從版本0.15開始,不推薦使用save方法,而采用def注冊(請求,用戶)方法。

所以要解決這個問題,示例的代碼應該是這樣的:

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()


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 1015 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號