我决定使用修改后的保罗的方法。我使用标准消息调用,但我导入:
from myapp.utils import Messages as messages
在utils.py
我的文件中:
from django.contrib.messages import (get_messages,
error as _error, info as _info, success as _success, warning as _warning)
class Messages:
@classmethod
def error(cls, request, msg):
cls._add_if_unique(request, msg, _error)
@classmethod
def info(cls, request, msg):
cls._add_if_unique(request, msg, _info)
@classmethod
def success(cls, request, msg):
cls._add_if_unique(request, msg, _success)
@classmethod
def warning(cls, request, msg):
cls._add_if_unique(request, msg, _warning)
@classmethod
def _add_if_unique(cls, request, msg, msg_method):
storage = get_messages(request)
if msg not in [m.message for m in storage]:
msg_method(request, msg)
storage.used = False # iterating over get_messages mark them as gone, so lets prevent this