0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

djangoでフラッシュメッセージを出す方法

Posted at

参考ページ

settings.py

INSTAllED_APPS内にdjango.contrib.messagesの記述があるか確認

INSTAllED_APPS = [
    ...,
    ...,
    'django.contrib.messages',
    ...,
]

view.py

  1. from django.contrib import messagesする
  2. 表示する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 設定によって変更できます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?