簡體   English   中英

django 中只允許經過身份驗證的用戶訪問某些頁面

[英]Only allowing authenticated users to access certain pages in django

我一直在努力做到只有登錄的用戶才能訪問頁面,但我似乎無法讓它工作。

這是我的views.py

@login_required
def course(request):
    data = Students.objects.all()
    context = {'data', data}
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/')
    else:
        return render_to_response('login/course.html', context)

我還嘗試通過執行以下操作來限制訪問

{% if user.is_authenticated %}
    <h1>Course Page!</h1>
{% else %}
    <a href="/">login</a>
{% endif %}

我在 views.py 文件中嘗試的第一種方式總是讓我看到頁面,而第二種方式總是只顯示登錄鏈接。 這可能是小事,但我似乎無法解決。 有人能指出我正確的方向嗎?

這應該足夠了。 如果匿名用戶仍然可以訪問該視圖功能,則該用戶可能已通過身份驗證。

@login_required(login_url='/')
def course(request):
    data = Students.objects.all()
    return render(request, 'login/course.html', {'data': data})

你確定你沒有經過身份驗證? 嘗試刪除 localhost 的 cookie 並再次打開視圖。

在您看來,嘗試通過響應傳遞給用戶,例如:

return render_to_response('login/course.html', {'context': context, 'user': request.user})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM