我正在尝试禁用某些模型的添加/更改,而我是通过覆盖admin对象中的add_view
方法来实现的。这样做,我想向用户添加一条消息,然后重定向。我正在这样添加消息:
messages.add_message(
request,
messages.ERROR,
"Please use the other interface.",
)
之后:
http://readthedocs.org/docs/django/en/latest/ref/contrib/messages.html
它有效,但它旁边出现了一个绿色的复选标记,好像它是成功的。我检查了模板,它添加了message.tags中的任何类(如果有警告或错误,你得到的图标不同于复选标记)。但是,当我按上述链接的方式(或我发现的任何其他方式)发送消息时,我在消息对象上看不到标记。
任何想法可能出错?
答案 0 :(得分:1)
我昨天刚刚遇到过一次经历,我遇到了同样的事情。不管你信不信,为我解决的是重启网络服务。我在./manage.py runserver
本地工作,所以不确定这是不是你的情景。
顺便说一句,我发现了其他奇怪的django奇怪,特别是在创建大量新代码时,通过这样做解决了。
答案 1 :(得分:1)
确保在settings.py
中,MIDDLEWARE_CLASSES
列表包含
'django.contrib.messages.middleware.MessageMiddleware',
否则,Django消息有点工作,但仅适用于经过身份验证的用户,消息标记损坏,以及可能还有其他问题。
(我刚遇到同样的问题,并添加该行修复它。)
答案 2 :(得分:-1)
这就是我的django admin base.css中的内容:
ul.messagelist li {
font-size: 12px;
display: block;
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border-bottom: 1px solid #ddd;
color: #666;
background: #ffc url(../img/admin/icon_success.gif) 5px .3em no-repeat;
}
这意味着尽管它是类或标签,但它会获得图标。只需在消息列表中添加消息<li>
。