0

Djangoで簡単なメッセージを表示する正しい方法は何でしょうか。専用のテンプレートを作成するのにふさわしくない単純なメッセージを参照しています。次のようなもの:間違ったアクティベーションキー、アカウントがアクティベートされているため、使用を開始できます。エラー/情報メッセージごとに1つ作成すると、数十のテンプレートが作成されることになります。

もちろん、これらのメッセージを現在のアプリのレイアウトに表示する必要があります。

お知らせ下さい。

4

3 に答える 3

3

djangoメッセージフレームワークを使ってみませんか?

どのテンプレートでも使用できます

于 2013-01-21T09:13:36.980 に答える
2

最良の方法は、PradnyaMhatreが提案するようにdjangoメッセージフレームワークを使用することです。私は通常、次のように基本テンプレート内にメッセージを配置しました。

base.html:

{% block messages %}
  {% if messages %}
    {% for message in messages %}
      <div class="{{message.tags}} box">
        <p>
          {{ message|safe }}
        </p>
      </div>
    {% endfor %}
  {% endif %}
{% endblock %}

そして、ビューの中に置くことができます:

django.contrib.messages.add_message(request、django.contrib.messages.ERROR、message))

ここにERROR、INFO、およびSUCCESSメッセージを入れることができます。

ビューは次のようになります。

import django.contrib.messages
import django.shortcuts

def some_view(request):
    do_something()
    django.contrib.messages.add_message(request, django.contrib.messages.SUCCESS, 'It worked \o/')
    return django.shortcuts.render_to_response(
        'template_that_extends_base.html',
        {},
        context_instance=django.template.RequestContext(request))
于 2013-01-21T20:51:43.203 に答える
2

エラーメッセージ変数を受け入れて表示する一般的なテンプレートを作成できます。明らかに、このアプローチでは、拡張などのテンプレートのすべての機能を使用できます。

{% inherit 'base.html' %}
{% block content %}
    {{ message }}
{% endblock %}

ビューで:

def foo_view(request):
    message = 'Some message here'
    data = {'message': message}
    return render_to_response('message_template.html', data)
于 2013-01-21T05:11:54.577 に答える