3

こんにちは、ジャンゴ初心者です。

私はdjangoを使用して認証システムを作成しています。

ユーザーがログインしたら、値をセッションに保存しています。

 user = authenticate(username=username, password=password)
request.session['mid'] = user.id

更新すると、セッションIDを受け取ることができます

uid = request.session['mid']

しかし、ユーザーIDからユーザーデータを取得する方法がわかりません。ユーザー ID を使用してユーザー オブジェクトを取得する方法を教えてください。

4

2 に答える 2

7

単純な.get()クエリを使用します。

try:
    uid = request.session['mid']
    userobj = User.objects.get(id=uid)
except User.DoesNotExist:
   #handle case when user with that id does not exist

...
于 2013-11-06T06:07:17.760 に答える
1

もちろん、ユーザー ID を に保存し、request.session手動で django ORM を使用して ID をクエリすることもできます。

しかし、ミドルウェアSessionMiddlewareAuthenticationMiddlewareミドルウェアを高いレベルでインストールした後、Django はこの認証フレームワークを要求オブジェクトのシステムにフックできます。ほとんどの django プロジェクトは、以下のコードを使用して Web リクエストから認証済みユーザーを取得すると思います。

if request.user.is_authenticated():
         user = request.user
于 2013-11-06T07:11:19.017 に答える