Djangoで簡単なメッセージを表示する正しい方法は何でしょうか。専用のテンプレートを作成するのにふさわしくない単純なメッセージを参照しています。次のようなもの:間違ったアクティベーションキー、アカウントがアクティベートされているため、使用を開始できます。エラー/情報メッセージごとに1つ作成すると、数十のテンプレートが作成されることになります。
もちろん、これらのメッセージを現在のアプリのレイアウトに表示する必要があります。
お知らせ下さい。
Djangoで簡単なメッセージを表示する正しい方法は何でしょうか。専用のテンプレートを作成するのにふさわしくない単純なメッセージを参照しています。次のようなもの:間違ったアクティベーションキー、アカウントがアクティベートされているため、使用を開始できます。エラー/情報メッセージごとに1つ作成すると、数十のテンプレートが作成されることになります。
もちろん、これらのメッセージを現在のアプリのレイアウトに表示する必要があります。
お知らせ下さい。
djangoメッセージフレームワークを使ってみませんか?
どのテンプレートでも使用できます
最良の方法は、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))
エラーメッセージ変数を受け入れて表示する一般的なテンプレートを作成できます。明らかに、このアプローチでは、拡張などのテンプレートのすべての機能を使用できます。
{% 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)