我正在使用django alluth在我的django应用程序上进行身份验证/注册。 我需要创建一个只有一个字段的自定义注册表单:email。密码将在服务器上生成。以下是我创建的表单:
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()
在设置.py公司名称:
^{pr2}$现在我需要给用户发送一封电子邮件,告诉他密码。当然,我可以在signup
方法中执行此操作,但这不是一个好的实践,因为表单只需要用于收集和检查信息。在
倾听user_signed_up
django allauth信号是很好的,但是不可能在其中获得用户密码,因为密码存储在散列中。有什么方法可以传递额外的参数给信号吗?或者有其他方法发送电子邮件?在
非常感谢。在
如果不想在signup方法中进行注册,那么不要在表单内部进行注册,而是在视图中进行注册。在
只有在创建密码并将其交给用户时,您才有权访问该密码,因此您需要将其发送给该用户。在
相关问题 更多 >
编程相关推荐