/ / Django - UpdateView CBVを使用して成功メッセージを送信する方法 - django、django-class-based-views

Django - UpdateView CBVを使用して成功メッセージを送信する方法 - django、django-class-based-views

(最初は私の悪い英語のために申し訳ありません) ユーザーが変更を保存したときに、UpdateViewにメッセージを表示しようとしています!

これは私の見解です

class NeedUpdateView(UpdateView):
model = Need
template_name = "purchases/needs_update_form.html"
pk_url_kwarg = "need_id"
success_message = "List successfully saved!!!!"
fields = [
"detail",
]

アプリケーションを保存すると、同じテンプレートがロードされます。しかし、私はオブジェクトを保存する場合、ブートストラップアラートを表示するのが好きです!

これは、メッセージを表示するためのテンプレート内のコードです

{% if messages %}
<div class="alert alert-success">
{% for m in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ m }}</li>
{% endfor %}
</div>
{% endif %}

設定ではこれを追加します

MESSAGE_STORAGE = "django.contrib.messages.storage.session.SessionStorage"

しかし、私はメッセージを表示することはできません!オブジェクトの変更はメッセージを表示する必要があります保存罰金です!

編集:ここに私の設定を表示する私は、ドキュメントのすべての手順に従うことを示す

MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.locale.LocaleMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]

DJANGO_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]

TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, "templates")],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
"django.template.context_processors.i18n",
"apps.cart.context_processors.cart",
],
},
},
]

回答:

回答№1の場合は7

クラスベースのビューでメッセージを有効にする、あなたは SuccessMessageMixin.

from django.contrib.messages.views import SuccessMessageMixin

class NeedUpdateView(SuccessMessageMixin, UpdateView):
...
success_message = "List successfully saved!!!!"