這是可能的。我的解決方案實現了用戶模型post_save信號來調用Allauth密碼重置視圖,該視圖將向用戶發送電子郵件。首先要考慮的是在管理員用戶創建表單中強制用戶電子郵件地址(如解釋here)。然後使用此代碼:
from allauth.account.views import PasswordResetView
from django.conf import settings
from django.dispatch import receiver
from django.http import HttpRequest
from django.middleware.csrf import get_token
@receiver(models.signals.post_save, sender=settings.AUTH_USER_MODEL)
def send_reset_password_email(sender, instance, created, **kwargs):
if created:
# First create a post request to pass to the view
request = HttpRequest()
request.method = 'POST'
# add the absolute url to be be included in email
if settings.DEBUG:
request.META['HTTP_HOST'] = '127.0.0.1:8000'
else:
request.META['HTTP_HOST'] = 'www.mysite.com'
# pass the post form data
request.POST = {
'email': instance.email,
'csrfmiddlewaretoken': get_token(HttpRequest())
}
PasswordResetView.as_view()(request) # email will be sent!
非常感謝。你的回答只是時間:)我已經以不乾淨的方式實現了它,但是你的解決方案非常好,並且運行良好。 –
我很高興這有幫助:) – davecaputo