Allauth用の独自のSignupFormを構築しようとしていて、問題が続いています。Allauth SignupFormとUserProfileを上書き保存する
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)
視覚的に、全く問題なくアップロードのフォーム:私はこのようなforms.pyを試してみました
。しかし、フォームを提出しようとすると、USER_IDはnullエラーとなります。おそらく、保存メソッドは、ユーザーを作成する前にプロファイルを保存しようとしていました。この順序を変更する方法や、signup()メソッドをオーバーライドする方法は、最初の保存後にのみ実行する必要はありません。他のいくつかの方法(forms.FormとAllAuthのSocialSignUpFormをオーバーライド)を試しましたが、別のエラーセットはありますが、これ以上の運がありません。
ここでの入力/案内はすばらしく、これは私をナットにしています。
それで、私の考え方は完全に変わり、意味が分かりました。私はallauth.socialaccount.forms.SignupFormから継承するフォームをリファクタリングし、すべてを適切に生成するようです。しかし、私のサインアップ(自己、リクエスト、ユーザー)は何もしていないようです。エラーは発生しませんが、プロファイルオブジェクトは実際には保存されません(サインアップが起動しているかどうかわかりません) – Programming123
printステートメントだけでsaveおよびcustom_signupメソッドを追加し、呼び出されるかどうかを確認してください。 – dkarchmer
保存は間違いなく(ユーザ名/メールが保存されているので)発砲しています。登録メッセージにメッセージを追加してみましたが、何も表示されませんでした。私もcustom_saveを上書きしようとします。 printステートメントはどこに表示されますか? – Programming123