02 xadmin的過濾器queryset

2022-09-01 08:06:08 字數 1218 閱讀 4477

需求: 每個老師都只能看到自己的課程

#

models.py

from django.contrib.auth.models import

abstractuser

class

userprofile(abstractuser):

......

class

courses:

teacher = models.foreignkey(teacher, on_delete=models.cascade)

class

teacher:

#由於是中途才新增的user外來鍵,所以當前teacher表已經存在資料,此時最好設定為set_null

user=models.onetoonefield(userprofile, null=true, blank=true, on_delete=models.set_null)

#

adminx.py

import

xadmin

courses

class

coursesadmin:

list_display = ['

name

', '

desc

', ... ]

search_fields = ['

name

', '

desc

', ... ]

list_filter = ['

name

', ...]

#重寫queryset()

defqueryset(self):

#取出當前courses表單的所有物件

qs =super().queryset()

#如果不是超級管理員,就對qs進行過濾

ifnot

self.request.user.is_superuser:

#對於onetoone這種外來鍵,可直接反向取user.teacher

qs = qs.filter(teacher=self.request.user.teacher)

return

qs

xadmin.site.register(courses, coursesadmin)

---end---

過濾器(6) 過濾器的攔截

本系列部落格彙總在這裡 過濾器彙總 我們來做個測試,寫乙個過濾器,指定過濾的資源為 index.jsp,然後我們在瀏覽器中直接訪問 index.jsp,你會發現過濾器執行了!但是,當我們在 helloservlet 中使用伺服器端的跳轉request.getrequestdispathcer ind...

過濾器的使用

以前一直有用過濾器,但是一直沒有仔細看過,前幾天在看完一本jsp設計的時候才真正有了點體會,這是一本比較基礎的書,在這裡我只是記錄下原 目的很簡單,只是記錄一下,也沒有想要解釋什麼 相信大家一看就會明白了,其實我也不是什麼髙手,只是看到了記錄下來,當成筆記 我想大家感興趣的話還是要買本有此類介紹的書...

過濾器的應用

1 說明 2 分析 因為乙個 可能有多個頁面,無論哪個頁面被訪問,都要統計訪問次數,所以使用過濾器最為方便。因為需要分ip統計,所以可以在過濾器中建立乙個map,使用ip為key,訪問次數為value。當有使用者訪問時,獲取請求的ip,如果ip在map中存在,說明以前訪問過,那麼在訪問次數上加1,即...