使用C9中Django的默认配置,不会显示消息。我可以在那里看到cookie和消息,但我在页面上看不到消息。 所以我使用Django's documentation的剪切代码。 如果我更改Django的设置以使用会话存储而不是cookie工作:
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
您可以按照此link。
查看我的C9存储库所以,我的问题是,为什么它不能与带有cookie的默认存储一起使用?
Django版本1.9.0最终
答案 0 :(得分:3)
我在我的本地环境中测试了您的代码,运行正常。
深入研究我发现c9是在$
符号截断你的cookie。要检查它,我只需在this point输出一些变量值。
data = self.request.COOKIES.get(self.cookie_name)
print 'cookies->', self.request.COOKIES
print 'data->', data
messages = self._decode(data)
print 'messages->', messages
结果是:
cookies-> {'messages': '00060c532edb4c08c778df44306c21e7aacfc15f$'}
data-> 00060c532edb4c08c778df44306c21e7aacfc15f$
messages-> None
--> 0
--> ['messages']
为了确保这是一个c9问题,我刚刚写了一个小程序:
Set cookie page
<?php
setcookie("c", "00060c532edb4c08c778df44306c21e7aacfc15f$also_this");
?>
Read cookie page
Cookie value:
<?php
echo $_COOKIE['c'];
?>
Results
Cookie value: 00060c532edb4c08c778df44306c21e7aacfc15f
然后,似乎你的问题是C9平台而不是django框架,看起来像一个bug,&#34;功能&#34;或对该服务的约束:它在$
个字符后截断剩余的cookie数据。 I ask them for an explanation