需求: 每個老師都只能看到自己的課程
#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,即...