Django의 flash 메시지

웹 시스템을 만들 때 우리는 일부 조작의 결과에 대해 사용자에게 정보를 제시해야 한다. 예를 들어 "××××저장 성공!",“××××오류가 발생했습니다!"
 
mvc 모델을 바탕으로 하는 프레임워크에서 우리는 플래시 메시지 방식을 사용할 수 있다.
 
이전에는 웹2py 프레임워크를 사용할 때 주로 다음과 같이 썼다.
response.플래시 ='%s 주문 성공'% foods[0].name
 
자동으로 위에서 response를 알립니다.플래시 정보.
 
하나.Django admin의 메시지
 
그러나django는 플래시가 없습니다. 우리가django admin을 사용할 때 한 대상을 저장한 후에 목록의 위쪽에 알림 정보가 나타나는 것을 보았습니다. 이것은 어떻게 하는 것입니까?
 
원본 코드를 보십시오. 저희가 볼 수 있는 것은 다음과 같습니다.
 request.user.message_set.create(message="Your playlist was added successfully.")
 
template에 다음 코드를 추가합니다.
 
{% if messages %}
    <ul class="messagelist">
        {% for message in messages %}
        <li>{{ message }}</li>
        {% endfor %}
    </ul>
{% endif %}

 
메시지 list CCTV를 설정하면django admin과 같은 알림 정보 효과를 얻을 수 있습니다.
 
그러나 이런 힌트 정보는 Request에 의존해야 한다.사용자, 로그인을 하지 않으면 실행할 수 없습니다.
자세히 보기 django document:
http://docs.djangoproject.com/en/dev/topics/auth/#messages
 
둘.Flash Message Template Tag
다음에 우리는 Flash Message Template Tag를 사용하여 실현한다.
 
특정 구현 방법은 Flash Message Template Tag의 문서를 볼 수 있습니다.
 
http://www.djangosnippets.org/snippets/319/
 
참고:django의 최신 버전에서는 코드 중 하나를 수정해야 합니다.
원문의 57-58 코드는 다음과 같이 수정되었습니다.
 
if ret is not None:
        context.update(ret)
        return self.nodelist.render(context)
 
 
너는
 
>>>request.session['flash_msg'] = 'Your changes have been save'
>>>request.session['flash_params'] = {'type': 'success'}
포장된 사용은 다음과 같이 더욱 우호적이다.
 
#coding=utf-8

def add_msg(request,msgtype,msg):
    request.session["flash_msg"] = msg
    request.session["flash_params"] = {'type': msgtype}

def add_success_msg(request,msg):
    add_msg(request,'success',msg)

def add_error_msg(request,msg):
    add_msg(request,'error',msg)

이렇게 하면 너는 다음과 같다.
 
flash.add_success_msg(request,'    !')
flash.add_error_msg(request,e.msg)
 
Flash Message를 구현할 수 있습니다.

좋은 웹페이지 즐겨찾기