2012-08-06 111 views
4

我試圖用django消息框架來顯示一條消息,當用戶註銷我的應用程序。我對django很陌生,文檔對我來說不是很清楚。爲什麼我的信息沒有顯示出來?django消息沒有顯示

https://docs.djangoproject.com/en/dev/ref/contrib/messages/#adding-a-message

VIEW.PY

from django.contrib import messages 

def signout(request): 
    logout(request) 
    messages.add_message(request, messages.INFO, 'Signout Successful.') 
    return HttpResponseRedirect(reverse(index)) 

def index(request): 
    lf = LoginForm() 
    if request.method == "POST": 
     username = request.POST['username'] 
     password = request.POST['password'] 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      if user.is_active: 
       auth_login(request, user) 
    return render_to_response('test/home.html', {'login_form': lf,}, context_instance=RequestContext(request)) 

模板 - 指數

{% if messages %} 
<ul class="messages"> 
    {% for message in messages %} 
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> 
    {% endfor %} 
</ul> 
{% endif %} 

我使用django1.3。並要求如下(注意.tz被註釋掉)

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "django.core.context_processors.static", 
    #"django.core.context_processors.tz", 
    "django.contrib.messages.context_processors.messages") 

從文檔上TEMPLATE_CONTEXT_PROCESSORS:

新在Django 1.3:在這個版本中加入的django.core.context_processors.static背景處理器。

Django 1.4中的新增功能:此版本中添加了django.core.context_processors.tz上下文處理器。

+1

呈現該索引頁的代碼是什麼? – 2012-08-06 18:57:37

+0

請參閱更新的view.py – thedeepfield 2012-08-06 19:00:50

+0

您使用的是什麼版本的Django? – zifot 2012-08-06 22:17:09

回答

9
+0

我將它添加到template_context_processors,但是當我這樣做時說我還需要添加'django.contrib.auth.context_processors.auth',然後我的頁面css格式消失..添加這兩個之後,它仍然會不工作.. – thedeepfield 2012-08-06 19:54:21

+0

請參閱更新的問題的答案〜 – thedeepfield 2012-08-09 18:37:18

+2

該文檔說:「由django-admin.py startproject創建的默認settings.py已經包含啓用消息功能所需的所有設置」,但由於某些原因,我沒有包括TEMPLATE_CONTEXT_PROCESSORS。所以小心! – Alveoli 2014-08-08 13:58:22