【问题标题】:Django allauth stopping email confirmationDjango allauth 停止电子邮件确认
【发布时间】:2014-11-26 10:22:47
【问题描述】:

在我的网络应用中,我使用 django-allauth 进行帐户管理。

如果用户在我的应用中注册,他们将收到一封带有“确认链接”的电子邮件。(没有确认电子邮件,他们可以登录但不会获得全部权限)。

现在我想延迟发送确认电子邮件,因为他们可以执行一些导致表格更新的操作。如果用户执行这些操作(如果表格更新),那么我只需要发送确认电子邮件。我正在考虑在这里使用信号。

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.

【问题讨论】:

    标签: python django django-allauth


    【解决方案1】:

    编辑-

    我能想到的一种方法是将ACCOUNT_EMAIL_VERIFICATION 设置为"none",然后在用户将这些字段添加到数据库后调用 allauths send_email_confirmation 方法。

    【讨论】:

    • 我知道那个设置但是,我想要的是在某个时间后发送电子邮件。
    • @user3237836 哦,抱歉,我没有正确阅读问题。
    • :-) 好的,但我不需要道歉,帮帮我.. ;-)
    • 好的我试过你说的,但是我需要在调用 post_save 信号时调用 send_email_confirmation(request, user, signup=True) 。但我没有请求和用户实例通过。我该怎么做
    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 2017-05-12
    • 2014-07-30
    • 2016-07-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多