亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查管理員是否登錄

檢查管理員是否登錄

繁花不似錦 2023-03-08 16:10:45
我正在嘗試檢查當前登錄的用戶是否是管理員,然后允許他們訪問管理頁面,否則返回主頁。這是我的觀點.pyfrom django.shortcuts import render, redirectfrom django.http import HttpResponsefrom django.contrib.auth import login, logout, authenticatefrom django.contrib import messagesfrom teacher.models import usersdef login(request):    if request.method == "POST":        username = request.POST['username']        password = request.POST['password']        user = authenticate(username = username, password = password)        if user is not None:            login(request, user)            print (user)            messages.success(request, "You have successfully Logged In.")            return redirect('index')        else:            messages.error(request, "You have entered invalid credentials. Please try again")            return redirect('login')    else:        return render(request, 'main/login.html')        def admin(request):    user = users.objects.get(category = 'admin')    if user:        return render(request, 'main/admin.html')    elif Exception:        return render(request, 'main/home.html')        這是我的 models.pyclass users(models.Model):    _id = models.AutoField    name = models.CharField(max_length = 100)    username = models.CharField(max_length = 100)    email = models.EmailField(max_length=254)    hpassword = models.CharField(max_length = 255)    category = models.CharField(max_length=50, default= "teacher")我嘗試過使用不同的查詢方法。但我最終收到錯誤頁面,因為“用戶匹配查詢不存在”。它也不檢查用戶是否登錄。即使用戶未登錄,它也會返回到管理頁面。
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

你搜索過裝飾器嗎?看看在我的 django 應用程序上檢查管理員登錄

對于儀表板訪問檢查Django 登錄裝飾器,如果未登錄,您可以將用戶重定向回登錄頁面。

from django.contrib.auth.decorators import login_required


@login_required

def my_view(request):

  ...

對于第二個“用戶匹配查詢不存在”。檢查您是否有數據庫表。確保已運行遷移并使用 Try Exception


try:     

    user = users.objects.get(category = 'admin')     

    if user:         

        return render(request, 'main/admin.html')    

except Exception as e:     

       return render(request, 'main/home.html') 


查看完整回答
反對 回復 2023-03-08
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

django 中的默認用戶類有一個名為“is_superuser”的布爾字段,它定義用戶是否為管理員。



查看完整回答
反對 回復 2023-03-08
  • 2 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號