2013-01-21 4 views
0

Django에서 간단한 메시지를 표시하는 올바른 방법이 무엇인지 궁금합니다. 나는 전용 템플릿을 만들 자격이없는 간단한 메시지를 언급하고있다. 같은 물건 : 잘못된 활성화 키, 귀하의 계정이 당신이 그것을 사용하여 시작할 수 있습니다 등 내가 각 오류/정보 메시지에 대한 하나를 만드는 경우 템플릿의 수만 생성 결국 것입니다 활성화되었습니다.Django에서 간단한 메시지 표시

당연히 이러한 메시지가 현재 앱의 레이아웃에 표시되어야합니다.

알려 주시기 바랍니다.

답변

2

표시되는 오류 메시지 변수를 허용하는 일반 템플릿을 만들 수 있습니다. 분명히보기에서 등 당신이 확장 같은 템플릿의 모든 힘을 사용할 수있는이 방법,

{% inherit 'base.html' %} 
{% block content %} 
    {{ message }} 
{% endblock %} 

과 :

def foo_view(request): 
    message = 'Some message here' 
    data = {'message': message} 
    return render_to_response('message_template.html', data) 
2

가장 좋은 방법은 Pradnya Mhatre 알 수 있듯이 장고 메시지 프레임 워크를 사용하는 것 중 하나와 함께 사용할 수 있습니다.

base.html :

{% block messages %} 
    {% if messages %} 
    {% for message in messages %} 
     <div class="{{message.tags}} box"> 
     <p> 
      {{ message|safe }} 
     </p> 
     </div> 
    {% endfor %} 
    {% endif %} 
{% endblock %} 

그리고 뷰 안에 당신이 넣을 수 있습니다 :

django.contrib.messages.add_message 나는 보통이 같은 기본 템플릿 내부에 메시지를 넣었습니다 (request, django.contrib.messages.ERROR, message))

여기에 ERROR, INFO 및 SUCCESS 메시지를 넣을 수 있습니다.

로보기는 다음과 같이 보일 것입니다 :

import django.contrib.messages 
import django.shortcuts 

def some_view(request): 
    do_something() 
    django.contrib.messages.add_message(request, django.contrib.messages.SUCCESS, 'It worked \o/') 
    return django.shortcuts.render_to_response(
     'template_that_extends_base.html', 
     {}, 
     context_instance=django.template.RequestContext(request)) 
관련 문제