我一直在試圖爲Allauth構建我自己的SignupForm,並不斷遇到問題。Allauth覆蓋SignupForm和UserProfile保存
當我試圖像這樣的forms.py:
class SocialSignupForm(forms.ModelForm):
class Meta:
model = Profile
exclude = ('user',)
def __init__(self, *args, **kwargs):
self.sociallogin = kwargs.pop('sociallogin')
user = self.sociallogin.user
username = forms.CharField(max_length=25, label="Username", help_text='', required=True)
從外觀上看,沒有任何麻煩了裝載在所有形式。但是,當我嘗試提交表單時,我將得到USER_ID爲空錯誤。據推測,保存方法試圖在創建用戶之前保存配置文件。不知道如何改變這個順序,並重寫註冊()方法,因爲你只需要在初始保存後運行。
我已經嘗試了許多其他方法(覆蓋forms.Form和AllAuth的SocialSignUpForm),沒有任何更好的運氣(儘管是一組不同的錯誤)。
在這裏的任何輸入/指導將是驚人的,這一直讓我瘋狂。
好的,這完全改變了我對它的想法,並使一些感覺。我重構了表單以從allauth.socialaccount.forms.SignupForm繼承,它似乎正確地生成了一切。然而,我的註冊(自我,請求,用戶)似乎沒有做任何事情。沒有錯誤發生,但配置文件對象從來沒有真正保存(赫克我不明白,如果註冊甚至發射) – Programming123
嘗試添加一個保存和custom_signup方法只是一個打印語句,看看他們是否被調用。 – dkarchmer
保存肯定是射擊(因爲用戶名/電子郵件已保存),我試圖添加打印和郵件消息註冊,並沒有看到任何東西。我也會嘗試覆蓋custom_save。打印聲明在哪裏出現? – Programming123