Messages Framework 정리 내용을 참고

Messages Framework

  • 1회성 메시지를 담는 용도
  • HttpRequest 인스턴스를 통해 메시지를 담을 수 있다.
  • 메시지는 1회 노출되고 사라진다.

Message Levels

  • Message Levels를 통해 메시지를 분류할 수 있다.
  • 파이썬 로깅 모듈과 유사하며 레벨별로 필터링이 가능하다.
  • 템플릿에서 다른 스타일로 노출이 가능하다.
    • DEBUG
    • INFO
    • SUCCESS
    • WARNING
    • ERROR
# views.py
from django.contrib import messages

class CommentWrite(generic.CreateView):
    model = Comment
    fields = ['board', 'username', 'content']
    template_name = 'board/board_detail.html'

    def form_invalid(self, form):
        messages.error(self.request, '댓글을 입력해주세요!', extra_tags='danger')
        return HttpResponseRedirect(self.get_success_url())
  • view에 메시지가 등록되면 템플릿 렌더링을 통해 해당 메시지 내용을 노출할 수 있다.
    • message.tags : 레벨을 제공
    • message.message : 메시지 내용을 제공
{% if messages %}
{% for message in messages %}
    <div class="row" style="margin:20px auto;">
    <div class="col-sm-12">
        <div class="alert alert-danger">
        <strong>{{ message.tags }}!</strong> {{ message.message }}
        </div>
    </div>
    </div>
{% endfor %}
{% endif %}