簡體   English   中英

Django上下文處理器中的變量

[英]Variable in Django Context Processor

我想在上下文處理器中注冊一個變量,但是發生的問題是它不起作用並且不顯示任何錯誤。

views.py:-

def newmessage(request):
    getmessagevalue = interview.objects.all()
    return {'getmessagevalue': getmessagevalue }

settings.py:-

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.contrib.messages.context_processors.messages",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.static",
    "django.core.context_processors.media",
    "django.core.context_processors.request",
    "django.core.context_processors.tz",
    "userprofile.views.newmessage"

)

我該怎么辦,錯誤和值不顯示。

您顯示給我們的代碼對我來說還不錯。 您需要確保您的視圖(未顯示)正在使用請求上下文呈現模板。 有關更多信息, 請參閱文檔

將日志記錄或打印語句添加到上下文處理器,以確保它在您的視圖中運行。 也許您的數據庫中沒有interview對象,所以它返回一個空的查詢集。

另一個有助於調試的選項是安裝Django調試工具欄 它具有一個“ Template面板,向您顯示模板上下文處理器的輸出。

另外一些建議:

  • 將模型命名為Interview ,並為方法new_message和變量get_message_value名稱使用下划線。
  • 將上下文處理器放在單獨的模塊userprofile.context_processors而不是在視圖模塊中。

如果遵循這些約定,那么經驗豐富的python和Django開發人員就可以更輕松地閱讀代碼,因此更有可能獲得問題的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM