Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.utils import six
  2. from django.contrib import messages
  3. class FlashMessages(object):
  4. """
  5. Intermediate container for flash messages.
  6. This is useful as, at the time of creating the message, we don't know
  7. whether the response is an AJAX response or not.
  8. """
  9. def __init__(self):
  10. self.msgs = {}
  11. def add_message(self, level, message):
  12. self.msgs.setdefault(level, []).append(message)
  13. def add_messages(self, level, messages):
  14. for msg in messages:
  15. self.add_message(level, msg)
  16. def info(self, message):
  17. self.add_message(messages.INFO, message)
  18. def warning(self, message):
  19. self.add_message(messages.WARNING, message)
  20. def error(self, message):
  21. self.add_message(messages.ERROR, message)
  22. def success(self, message):
  23. self.add_message(messages.SUCCESS, message)
  24. def as_dict(self):
  25. payload = {}
  26. for level, msgs in self.msgs.items():
  27. tag = messages.DEFAULT_TAGS.get(level, 'info')
  28. payload[tag] = [six.text_type(msg) for msg in msgs]
  29. return payload
  30. def apply_to_request(self, request):
  31. for level, msgs in self.msgs.items():
  32. for msg in msgs:
  33. messages.add_message(request, level, msg)