我在开发服务器上的项目中使用 Django 注册。当我注册一个新用户时,我使用 EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend' 来获取激活链接。当我尝试将激活链接放入网络浏览器时,出现错误,并且该帐户未激活。
据说 :
谢谢你。该函数用于生成密钥。
def create_profile(self, user):
"""
Create a ``RegistrationProfile`` for a given
``User``, and return the ``RegistrationProfile``.
The activation key for the ``RegistrationProfile`` will be a
SHA1 hash, generated from a combination of the ``User``'s
username and a random salt.
"""
salt = hashlib.sha1(str(random.random())).hexdigest()[:5]
username = user.username
if isinstance(username, unicode):
username = username.encode('utf-8')
activation_key = hashlib.sha1(salt+username).hexdigest()
return self.create(user=user,
activation_key=activation_key)
我收到了那封邮件。但我使用 EMAIL_BACKEND'django.core.mail.backends.filebased.EmailBackend'。
我认为问题来自这里。但我无法在生产服务器中进行测试。
我实际上解决了这个问题这是因为我生成了要在文件中发送的电子邮件,这要归功于 django 为开发目的提供的文件电子邮件后端。在这个文件中,当有回车时,它会添加一个 = 字符。激活帐户的链接就是这种情况。