2

私の Django サイトでは、「操作が正常に完了しました」や「新しいメッセージが 3 つあります」などのメッセージをユーザーに警告するために、いくつかの凝った UI と組み合わせて message_set を使用することを計画しています。
ログインしようとしているユーザーに、彼が提供したユーザー/パスが間違っていることを警告しようとすると、問題が発生します-明らかな理由により、AnonymousUserにはMessageSetがありません。

私の質問: 私の message_set の使用は良い習慣ですか (または少なくとも正気ではありませんか)? 間違ったログイン資格情報の特定のケースを回避する方法についてのアイデアはありますか? もっと複雑な解決策に目を向けるべきですか (それが存在するかどうかさえわかりません)?

4

2 に答える 2

3

または、より複雑な状況 (複数のメッセージ タイプ - 通知 - エラー - 警告など) の解決策を提供する次のアプリケーションのいずれかを使用できます。

ジャンゴフラッシュ - http://djangoflash.destaquenet.com/

ジャンゴ通知 - http://code.google.com/p/django-notify/

ユーザー メッセージ/通知の件名に関するいくつかの議論は、このブログ投稿に掲載されています。

于 2009-09-08T17:46:14.003 に答える
3

セッションを使用してメッセージを保存し、テンプレート タグまたはコンテキスト プロセッサで再度引き出します。

def create_message(request, message):
    messages = request.session.get('messages', [])
    messages.append(message)
    request.session['messages'] = messages

def get_messages(request):
    messages = request.session.pop('messages', [])
    return {'messages' : messages}

あなたの見解では:

# if login fails:
create_message(request, "Sorry, please try again")

あなたのテンプレートで:

{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}

このアプローチは、匿名ユーザーで使用できるという点で優れているだけでなく、message_set アプローチのようにデータベース呼び出しがありません。

于 2009-09-08T12:46:40.723 に答える