参考ページ
settings.py
INSTAllED_APPS内にdjango.contrib.messages
の記述があるか確認
INSTAllED_APPS = [
...,
...,
'django.contrib.messages',
...,
]
view.py
-
from django.contrib import messages
する - 表示するhtmlに対応したview内methodで下記の表からシチュエーションにあった形のものを使用し、メッセージを設定する
区分 | 使用方法/例 | 省略形/例 |
---|---|---|
DEBUG | messages.add_message(request, messages.DEBUG, "Hello world.") |
messages.debug(request, "%s SQL statements were executed." % count) |
INFO | messages.add_message(request, messages.INFO, "Hello world.") |
messages.info(request, "Three credits remain in your account.") |
SUCCESS | messages.add_message(request, messages.SUCCESS, "Hello world.") |
messages.success(request, "Profile details updated.") |
WARNING | messages.add_message(request, messages.WARNING, "Hello world.") |
messages.warning(request, "Your account expires in three days.") |
ERROR | messages.add_message(request, messages.ERROR, "Hello world.") |
messages.error(request, "Document deleted.") |
html
messages変数を呼び出してメッセージを表示する
<!-- メッセージ表示例 -->
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
以下使える属性
class Message¶
テンプレート内のメッセージのリストをループさせると、 Message クラスのインスタンスが得られます。これらのインスタンスにはいくつかの属性しかありません:message: メッセージの実際のテキストです。
level: メッセージのタイプを説明する数値です (詳細は上述の message levels セクション)。
tags: スペースによって区切られた、全てのメッセージのタグを結合する文字列 (extra_tags と level_tag) です。
extra_tags: スペースによって区切られた、メッセージのカスタムタグを含む文字列です。空がデフォルトです。
level_tag: レベルを表す文字列です。デフォルトでは定数名の小文字バージョンですが、MESSAGE_TAGS 設定によって変更できます。