0

ログインミドルウェアを使用してユーザーログインフォームを作成しています。

ユーザーが正常にログインした後、ビューからユーザー ID を取得する最良の方法は何ですか?

middleware.py を作成しました。

class LoginMiddleware(object):
    def process_request(self, request):
        if request.path != self.require_login_path and request.user.is_anonymous():
            if request.POST:
                return login(request)
            else:
                return HttpResponseRedirect('%s?next=%s' % (self.require_login_path, request.path))
4

1 に答える 1

5

ユーザーがログインすると、関連付けられたオブジェクトがテンプレートで自動的にUser使用可能になります。「ユーザーID」と言うとき、ユーザー名を意味するのか、データベース内request.userのリテラル値を意味するのかわかりません。idただし、同じ方法が両方に適用され{{ request.user.username }}ます{{ request.user.id }}

さらに、上記のコメンターが指摘したように、ログインの処理方法を変更する必要がない限り、新しい認証ミドルウェアを作成する理由はありません。それ以外の場合は、そのままにしてデフォルトを使用してください。(これは、ミドルウェアに基づいて行うべきことのようです)。

request.user更新:テンプレートにアクセスするには、 RequestContext. 以下の例render_to_response:

from django.template import RequestContext

render_to_response('templates/mytemplate.html', {}, context_instance=RequestContext(request))
于 2011-05-12T16:19:47.353 に答える