Не уверен, было ли это исправлено в более новых версиях django (я обнаружил поведение, описанное вами в django 1.2.1, а также в django-grappelli 2.0), но если вы используете метод Bartek выше, вам, вероятно, также захочется изменитьшаблоны администратора, чтобы показать сообщения по-разному.В частности, в base.html:
Измените это:
{% if messages %}
<ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>
{% endif %}
на следующее:
{% if messages %}
<ul class="messagelist">{% for message in messages %}<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message}}</li>{% endfor %}</ul>
{% endif %}
Возможно, вам все равно придется настроить немного CSS,но, по крайней мере, это будет выглядеть как другой класс li в HTML.
Вот пример изменения CSS (совместимый с grappelli)
ul.messagelist li.error {
background: url('../img/icons/icon-no.png') 20px 50% no-repeat;
background-color: #f2e6e6;
}