1

次のコードを使用してログインしていますが、後でナビゲートしindex.htmlてアクセスしようとするget_profile()と、IDが関連付けられていないと表示されます。しかし、次の変数を出力すると、両方ともfalseになります。私はここで何が間違っているのですか?

EDIT

def someotherview(request):
  logging.debug(request.user.is_authenticated()) #prints false
  logging.debug(request.user.is_active) #prints false

これがログイン方法です

def logon(request):
  qd = get_request_type(request)
  try:
   uname = qd.__getitem__('username')
   pwd = qd.__getitem__('password')

  user = authenticate(username = uname, password = pwd)
  if user is not None:
     response_dict.update({'yes':1})
     logging.debug("labs_home1 ==================")
     return render_to_response('home/index.html', context_instance=RequestContext(request, {'response_dict':response_dict,'a':1}))
  else:
     response_dict.update({'yes':0})
     logging.debug("labs_home2 ==================")
     return render_to_response('registration/login.html', context_instance=RequestContext(request, {'response_dict':response_dict,'a':1})

私の質問も見てくださいdjangoget_profileerror

4

2 に答える 2

2

authenticateユーザー名とパスワードが正しいことを確認するだけで、そのペアで見つかったユーザーインスタンスを返します。実際にユーザーをログインさせてテンプレートやセッションなどで利用できるようにするには、loginを呼び出す必要があります

login(request, user)
于 2012-07-17T14:31:00.397 に答える
0

簡単な答え:組み込みの認証を使用します。youuを自分で書こうとしないでください。https://docs.djangoproject.com/en/dev/topics/auth/

  • コードは完全に壊れています-loginビューでは変数unameでありpwd、未定義です。作業コードを投稿してください。
  • 自分で認証を行っているようですが、組み込みの認証方法を使用してみませんか?
  • 問題の一部は、ログインしたユーザーを変数で定義しているようですuserが、それは関数のスコープ内にのみ存在しlogonます。残りのコードはチェックしていrequest.userます。これが、組み込みの認証方法を使用する必要がある理由です。
于 2012-07-17T14:26:58.963 に答える