ユーザーが電子メールアドレスを変更できるようにする最善の方法は、電子メールアドレスを格納するために使用できる個別のUserProfileモデルを作成することです。コードの例を以下に示します。
class UserProfileForm(ModelForm):
def __init__(self, *args, **kwargs):
super(UserProfileForm, self).__init__(*args, **kwargs)
try:
self.fields['email'].initial = self.instance.user.email
except User.DoesNotExist:
pass
email = forms.EmailField(label="Primary email")
class Meta:
model = Parent
def save(self, *args, **kwargs):
"""
Update the primary email address on the related User object as well.
"""
u = self.instance.user
u.email = self.cleaned_data['email']
u.save()
profile = super(UserProfileForm, self).save(*args,**kwargs)
return profile
この方法では、ユーザーがユーザーに送信されます確認し、メールアドレスのリンクをクリックしたまで、新しいメールアドレスが非アクティブのままであることを保証することができます。私はあなたの質問に答えました。