私が取り組んでいる新しいdjangoプロジェクトがあります。私はフレームワークに付属のDjangosユーザーログインとログアウトサービスを統合しています。ビューがあり、ビュー内でrequest.user
にuser
オブジェクトがあるかどうかを確認したいと思っています。存在しない場合は、ログインページにリダイレクトします。 request.user
にuser
がある場合は、ユーザーのホームページを表示します。これどうやってするの。あなたは、ユーザーが認証されているかどうかを確認する必要があります...ログインしている人がいるか確認してください。
0
A
答えて
2
def home(request):
if not request.user.is_authenticated:
return redirect('login')
else:
User = request.user
profile = Profile.objects.get(user = User)
parameters = {
'user':User,
'profile':profile,
}
return render(request, 'user/home.html', parameters)
のログイン
def home(request):
if not request.user:
return redirect('login')
else:
User = request.user
profile = Profile.objects.get(user = User)
parameters = {
'user':User,
'profile':profile,
}
return render(request, 'user/home.html', parameters)
にログインしているユーザーが、doesntの仕事がある場合にユーザが存在しない場合、それは動作します:ここに私のコードですかどうか、あなたがチェックするとrequest.user
Djangoはデフォルト
+1
['is_authenticated'](https://docs.djangoproject.com/en/dev/ref/contrib/auth/#django)に注意してください。 contrib.auth.models.User.is_authenticated)がDjango 1.10のメソッドではなく属性になりました。 –
+1
あなたがとにかくログインしていなければ返ってくるので 'else'は必要ありません –
1
ジャンゴprovides a decorator for thisとして匿名ユーザーを返します。
from django.contrib.auth.decorators import login_required
@login_required
def home(request):
# at this point you know you _always_ have an authenticated user
user = request.user
profile = Profile.objects.get(user=user)
context = {
'user':user,
'profile':profile,
}
return render(request, 'user/home.html', context)
関連する問題
- 1. Androidスタジオtwitterユーザーがログインしていないか確認してください
- 2. ユーザーがログインしていることを確認してください
- 3. ブラウザが開いているか確認してください。
- 4. ラベルが入っているか確認してください
- 5. アップロードファイルがパスワードで保護されているか確認していないか確認してください。
- 6. Webページからログイン情報を確認してください
- 7. すべてのアクティビティでログインを確認してください
- 8. ログイン中にユーザーがdeviseを使用して確認したかどうか確認してください
- 9. Admin(hashmap)のログインを確認してください
- 10. angular2 - ユーザーのログインを確認してください
- 11. saml 2.0 authencationでログインを確認してください
- 12. wp_list_pages子供がいないか確認してください
- 13. 他のものをロードする前にユーザーがログインしているか確認してください
- 14. プロセスがアイドリングしているかどうかを確認してください。
- 15. ユーザーがASP.NETコアでトークンベースの認証でログインしていることを確認してください
- 16. Cookieを使用してログインしているかどうかを確認してください
- 17. Androidの場合、ユーザーがFacebookにログインしているかどうかを確認してください
- 18. ファイルがアップロードされているかどうか確認してください。
- 19. senderEmailAddressを確認してください
- 20. name_suffixを確認してください
- 21. URLを確認してください
- 22. SQL:URLを確認してください
- 23. カメラがスプライトにフォーカスしているか確認してください
- 24. クライアントがすでに投票しているか確認してください。
- 25. サーバがHTTPSをサポートしているか確認してください
- 26. ユーザーが別のドメインからログインしていることを確認してください
- 27. ブートストラップ:MSIのバージョンがインストールされているか確認してください
- 28. PDFリーダーがインストールされているか確認してください。
- 29. Liquibase:プロパティが設定されているか確認してください
- 30. WordPress:プラグインがインストールされているか確認してください。
多くの例がありますhttps://stackoverflow.com/a/3644910/2282638 –