gpt4 book ai didi

python - 在用户注册时发送密码,django-allauth

转载 作者:太空宇宙 更新时间:2023-11-04 05:20:15 24 4
gpt4 key购买 nike

我正在使用 django-alluth 在我的 django 应用程序上进行身份验证/注册。我需要创建一个只有一个字段的自定义注册表单:电子邮件。密码将在服务器上生成。这是我创建的表单:

from django import forms
from users.models import User


class SignupForm(forms.ModelForm):
email = forms.CharField()

class Meta:
model = User
fields = ['email',]
esclude = ['password1', 'password']

def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
del self.fields['password1']
del self.fields['password2']

def signup(self, request, user):
password = str(User.objects.make_random_password())
user.set_password(password) #!!!!!!! HERE
user.save()

在 settings.py 中:

ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.SignupForm'

现在我需要用他的密码向用户发送一封电子邮件。当然,我可以在 signup 方法中执行此操作,但这不是好的做法,因为只需要一个表单来收集和检查信息。

user_signed_up django-allauth 信号会很好,但是不可能从中获取用户密码,因为密码存储在哈希中。有什么办法可以传递额外的参数给信号吗?或者也许还有其他一些发送电子邮件的方法?

非常感谢。

最佳答案

如果您不想在注册方法中进行注册,请不要在表单中进行注册,而是在 View 中进行。

您唯一有权访问密码的时刻是您创建密码并将其提供给用户时,因此您需要将密码发送给该用户。

关于python - 在用户注册时发送密码,django-allauth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com