2012-04-25 121 views
0

我遇到了django的用戶帳戶/登錄問題。我試圖在登錄後做一些事情,但在登錄後,網站顯示我還沒有登錄。例如,如果我使用{{user}},在html標記中,即使我是在沒有登錄,我不知道什麼是錯我的代碼:Django登錄/發佈登錄

views.py:

def index(request): 
    return render_to response({'user', request.user}) 

urls.py:

(r'^$', 'tickets.views.index'), 
(r'^accounts/login/$', 'django.contrib.auth.views.login'), 
(r'^accounts/logout/$','django.contrib.auth.views.logout'), 

login.html的是基本的Django登錄模板並在索引上顯示{{user}}。

感謝您的任何幫助。

編輯:

我有一個模板標籤,我只是沒有輸入它。我希望它說我在登錄後登錄。例如:如果我使用帳戶測試登錄,我希望測試顯示{{user}}不是匿名用戶。

+2

你有沒有把 'django.contrib.auth', 'django.contrib.contenttypes' 在你安裝的應用程序? 你這樣做後是否運行'syncdb'? – RotaJota 2012-04-25 18:27:23

+0

您的'render_to_response()'調用缺少模板參數。 – 2012-04-25 18:32:45

+0

這是正確的。如果你沒有登錄,你實際上是'AnonymousUser' – alan 2012-04-25 18:33:33

回答

0
  1. 在您的設置中檢查SESSION_ENGINE。它可能是緩存後端,並且緩存可能被設置爲虛擬。
  2. 檢查MIDDLEWARE_CLASSES中的'django.contrib.sessions.middleware.SessionMiddleware。
0

我剛剛重讀你的問題。您未登錄時將獲得AnonymousUser。

請參閱the Django documentation

匿名用戶是未經過身份驗證的用戶,即他們沒有提供有效的身份驗證詳細信息。但是,這並不一定意味着他們無權做任何事情。在最基本的層面上,大多數網站授權匿名用戶瀏覽大多數網站,以及許多允許的意見等匿名發帖

+0

這是正確的,但是當我登錄時,我仍然得到anonymoususer,這是我目前遇到的問題。 – sean 2012-04-26 12:51:46

0

您很可能希望做這樣的事情在你的模板:

{% if user.is_authenticated %} 
    <p>Hi logged in user!</p> 
{% else %} 
    <p>Please login</p> 
{% endif %} 

當用戶尚未登錄時,您將獲得AnonymousUser的實例。您可以通過調用is_authenticated()方法來檢查它們是否已通過身份驗證。