2016-10-12 13 views
2

を使用して成功メッセージを送信するにはどうすればいいですか? ユーザーが変更を保存したときに、UpdateViewにメッセージを表示しようとしています。Django - UpdateView CBV

は、これが私の見解

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' 

しかし、私がメッセージを表示することはできませんを追加設定でを表示するためのテンプレートのコードです!オブジェクトの変更はメッセージを表示する必要があります保存罰金です!

EDIT:私は、ドキュメント内のすべてのステップenable the messages in class based views

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', 
      ], 
     }, 
    }, 
] 
+0

あなたはメッセージのフレームワークを有効にするには、[ここ](https://docs.djangoproject.com/en/1.10/ref/contrib/messages/#enabling-messages)記載されているすべての手順を実行しましたか? – ozgur

+0

はい!私はすべてのステップを踏んでいます。投稿を編集して設定を追加して表示する! – marcosgue

答えて

6

に従ってください、あなたはSuccessMessageMixinを使用する必要があることを示すために、ここに私の設定を示しています。

from django.contrib.messages.views import SuccessMessageMixin 

class NeedUpdateView(SuccessMessageMixin, UpdateView): 
    ... 
    success_message = 'List successfully saved!!!!' 
+0

ありがとうございます!完璧に動作します! – marcosgue

+0

私はまた、ここで継承が重要な役割を果たしていることについて言及したいと思います。 SuccessMessageMixinは常に最初のものでなければなりません。 –

関連する問題