我有来自Django-registration app的代码。
def send_activation_email(self, email):
email = email
ctx_dict = { 'activation_key' : self.activation_key,
'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
}
subject = render_to_string('activation_email_subject.txt', ctx_dict)
subject = ''.join(subject.splitlines())
message = render_to_string('activation_email.txt', ctx_dict)
send_mail(subject, message, 'gccFishing.com', [email], fail_silently = False)
内部activation_email.txt
是:这是正文
控制台的输出电子邮件是:
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: this is the subject
From: gccFishing.com
To: ipad@ap.com
Date: Sun, 01 Sep 2013 20:39:04 -0000
Message-ID: <20130901203904.3048.2540@hammad-P5QL-E>
this is the body
ctx_dict
在哪里存储?ctx_dict
以检查是否已发送激活密钥?ctx_dict
到服务器? 答案 0 :(得分:2)
1. ctx_dict
不会存储在任何位置 - 会将其传递给模板渲染器,以使activation_key
和expiration_days
可用于您的模板。例如,更好的电子邮件模板是 -
Thanks for registering, you have {{expiration_days}} to activate your account at {% url 'registration_activate' activation_key %}
2.您无法在模板以外的任何地方访问ctx_dict
(即使您间接访问它)也是如此。但是,您可以查询数据库。为已注册并且此时发送电子邮件的任何人创建RegistrationProfile。您可以通过查询User.is_active
字段或测试RegistrationProfile.activation == Registration.ACTIVATED
是否为真来测试它们是否已激活。
3.再说你没有。您可以在数据库中查询信息。
作为一个随意的观察,您似乎错误地使用django-registration来获取此信息。该应用程序有许多视图和已设置的urlconf来管理整个注册过程,您只需提供模板,按照the docs标准注册设置。