在我的网络应用中,我使用django-allauth进行帐户管理。
如果用户在我的应用中注册,他们会收到一封电子邮件,其中包含"确认链接&#34 ;.(未确认电子邮件,他们可以登录但不会获得完整权利)。
现在我想延迟发送确认电子邮件,因为他们可以执行某些操作,从而导致表格更新。如果用户执行这些操作(如果表更新),那么我只需要发送该确认电子邮件。我正在考虑在这里使用信号。
from django.db import models
from django.contrib.auth.models import User
from allauth.account.signals import user_signed_up
from allauth.account.utils import send_email_confirmation
from django.dispatch import receiver
import datetime
#this signal will be called when user signs up.
@receiver(user_signed_up, dispatch_uid="some.unique.string.id.for.allauth.user_signed_up")
def user_signed_up_(request, user, **kwargs):
send_email_confirmation(request, user, signup=True)
#this allauth util method, which sends confirmation email to user.
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
are_u_intrested = models.BooleanField(default=False)
models.signals.post_save.connect(user_signed_up_, sender=UserProfile, dispatch_uid="update_stock_count")
#If user fills this userProfile , then I only send confirmation mail.
#If UserProfile model instace saved , then it send post_save signal.
答案 0 :(得分:1)
修改 - 强>
我能想到的一种方法是将ACCOUNT_EMAIL_VERIFICATION
设置为"none"
,然后在用户将这些字段添加到数据库后调用allauths send_email_confirmation
方法。