我想让我的用户更改他们的电子邮件。有插件可以让我这样做吗?我试过" django-change-email 0.1.2",但它看起来不起作用。我修复了一些过时的错误,并要求在此之后更新数据库。我这样做了,但数据库似乎没有显示任何新表来更改电子邮件。
基本上,我希望用户自己更新自己的电子邮件地址。然后,服务器将发送包含唯一哈希的确认电子邮件。单击此按钮将验证更改并保存电子邮件。这可能与其他插件有关吗?谢谢!
答案 0 :(得分:1)
允许用户更改其电子邮件地址的最佳方法是创建单独的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
这样,您可以确保新用户的电子邮件地址保持不活动状态,直到用户点击了您要发送给用户的验证电子邮件地址链接。希望我回答你的问题。