私はdjango-appの認証/登録にdjango-alluthを使用しています。 そして私は1つのフィールド、すなわち電子メールでカスタムサインアップフォームを作成する必要があります。パスワードはサーバー上で生成されます。 settings.pyでユーザ登録時にパスワードを送信する、django-allauth
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()
:ここに私が作成したフォームで
ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.SignupForm'
そして今、私は自分のパスワードを持つユーザーに電子メールを送信する必要があります。もちろん、私はsignup
メソッドでこれを行うことができますが、フォームの情報の収集と確認にのみ必要なので、これは良い方法ではありません。
user_signed_up
django-allauthシグナルを聞くのは良いでしょうが、パスワードがハッシュで保存されているため、ユーザーパスワードを取得することはできません。信号に追加パラメータを渡す方法はありますか?それともメールを送信する方法がいくつかありますか?
ありがとうございます。
うん、ありがとう。私は 'utils.py'ファイルを作成し、そこに電子メールを送る機能を定義することで解決しました。 –