1

私はdjango-1.4.3を使用しており、スーパーユーザーはユーザーを作成してパスワードを割り当てることができます。ここでは、django-email-as-usernameを使用して、ユーザーが電子メールをユーザー名としてログインできるようにしています。スーパーユーザーが新しいユーザーを追加すると、新しく追加されたユーザーには、ユーザー名とパスワードを電子メールで通知する必要があります。

post_save signalを使用してユーザー作成後にメールを送信できます。しかし、パスワードは暗号化されて保存されるため、取得できませんでした。ユーザーに生のパスワードをメールで送信したい。どうすればこれを達成できますか?

4

1 に答える 1

1

私は以下のコードを使用してそれを達成しました:

from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver

@receiver(post_save, sender = User)
def my_callback(sender, **kwargs):
    import inspect
    records =[]
    for frame_record in inspect.stack():
        records.append(frame_record[3])
        if frame_record[3]=='get_response':
            request = frame_record[0].f_locals['request']
            email = request.POST.get('email')
            password1 =  request.POST.get('password1')
            password2 = request.POST.get('password2')
            if email != None and password1 != None and password2 != None and password1 == password2:
                html_content ="Hi,<br> Your username: %s <br> Password: %s"
                from_email   = settings.DEFAULT_FROM_EMAIL
                message      = EmailMessage('Welcome', html_content %(email, password1), from_email, [email])
                message.content_subtype = "html"  # Main content is now text/html
                message.send()
            break
于 2013-02-28T12:20:04.333 に答える