我认为我有这段代码:
if _user.objects.user_exists(_email):
auth.logout(request)
messages.success(request, 'You already hold a verified account with us. Please login.')
return redirect('accounts:login')
这在我的模板中:
{% if messages %}
{% for message in messages %}
<div>{{ message }}</div>
{% endfor %}
{% endif %}
这可悲的是不行。但是,如果我将return redirect('accounts:login')
更改为return render(request, 'accounts/login.html')
,则会显示该消息。那么在重定向期间阻止消息出现的是什么呢?
对于邮件存储,我正在使用:
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
感谢您的帮助。
答案 0 :(得分:3)
经过两天撞墙后,我发现了这个问题。这是我网站的会话设置。
# Session settings
SESSION_COOKIE_DOMAIN = '.mydomain.com'
SESSION_COOKIE_SECURE = True
因此,当在本地(127.0.0.1)开发时,这显然没有恢复我的会话,并且由于本地环境不安全,因此cookie也没有设置。
要解决此问题,必须采取以下步骤:
127.0.0.1 local.mydomain.com
的主机条目runserver
命令修改为runserver local.mydomain.com:8000
SESSION_COOKIE_SECURE = not DEBUG
从那时起,我不得不使用http://local.mydomain.com:8000
访问本地版本。
希望这可以帮助任何人解决同样的问题。