1

すぐに使えるdjango 1.5認証ソリューションを使用しています。認証後、django.contrib.auth.signals からの user_logged_in シグナルを使用して「post_login_info」をユーザーに追加したい

from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver

@receiver(user_logged_in)    
def post_login_action(sender,user,request,**kwargs):
    user.post_login_info = 'my post login information'

ただし、次のように、後でリクエスト オブジェクトから user.post_login_info を取得できません。

from braces.views import LoginRequiredMixin
from django.views.generic import ListView

class MyListView(LoginRequiredMixin,ListView):
def get_queryset(self):
    self.request.user.post_login_info  # Attribute Error: 'User' object has no attribute 'post_login_info'
    ...

ご提案ありがとうございます。

4

1 に答える 1

2

あなたのUserオブジェクトはpost_login_infoメンバーを持っていますか? その場合は、user.save()設定後に呼び出す必要がありますpost_login_info

そうでない場合は、その情報を永続化する別の方法を見つける必要があります。1 つの可能性として、Django のセッション ストレージ メカニズム、メンバーを持つカスタマイズされた User モデルpost_login_info、または新しいモデル (たとえばPostLoginInfo、User.

于 2013-10-18T19:38:20.753 に答える