Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从框架中清除Django登录消息_Python_Django - Fatal编程技术网

Python 如何从框架中清除Django登录消息

Python 如何从框架中清除Django登录消息,python,django,Python,Django,有一个项目设置为Django 1.6和Django allauth。当用户登录django时,会将登录消息保存到用户会话及其堆栈中。当用户到达包含消息框架的任何页面时,登录消息将与其他消息一起显示 由于这个原因,我想在用户登录后从消息队列中删除登录消息。 我试图删除django和allauth的user\u logged\u insignal中的登录消息,但我发现消息不是在那里创建的 消息删除代码的示例如下所示: # from allauth.account.signals import use

有一个项目设置为Django 1.6Django allauth。当用户登录django时,会将登录消息保存到用户会话及其堆栈中。当用户到达包含消息框架的任何页面时,登录消息将与其他消息一起显示

由于这个原因,我想在用户登录后从消息队列中删除登录消息。

我试图删除django和allauth的
user\u logged\u in
signal中的登录消息,但我发现消息不是在那里创建的

消息删除代码的示例如下所示:

# from allauth.account.signals import user_logged_in
# First I tried allauth signal above.
from django.contrib.auth.signals import user_logged_in

@receiver(user_logged_in)
def user_logged_in_(request, **kwargs):
    storage = messages.get_messages(request)
    storage.used = True
编辑:下面的解决方法正在运行。但我觉得这样做是不对的

在这之后,我决定做一个变通办法。用户登录后,用户重定向到索引视图。我删除了信号并在索引视图中附加
storage.used=True
方法。而且它也不起作用

def clear_messages(request):
    storage = messages.get_messages(request)
    storage.used = True


def index(request):
    clear_messages(request)
    return render_to_response('website/index.html', {}, context_instance=RequestContext(request, {}))

来自:

所有消息(如django.contrib.messages中的消息)都可以通过 覆盖各自的模板。如果要禁用消息 只需使用空白模板覆盖消息模板


你必须设置存储空间。used=TrueYes,我在发现自己的愚蠢后进行了更正:)但它也不起作用。注销消息已删除,但登录消息仍在显示。您没有返回请求上下文实例。使用。它与问题相关吗?因为原始代码中存在一个简单的上下文。通过创建两个空文件
templates/account/messages/logged_in.txt
templates/account/messages/logged_out.txt
@psychok7,我(实际上)能够实现这一点,但我不知道为什么。有人对此有任何官方文件吗?“2个空文件”方法也适用于我,但基本上是禁用一个功能(登录消息)来启用另一个功能(在我的示例中是提交消息)。还有其他选择吗???@psychok7但这不是完美的解决方案。。在我的情况下,用户可以使用任何链接登录。。由系统生成。。并将它们重定向到请求的链接,而不是特定的视图或屏幕。。而且对我来说不起作用。。