django admin自定制頁面的顯示


今天忽然想到個問題,我們在Django中渲染的時候,是通過路由寫一個函數並且返回對象在前端頁面上渲染。
那么如果是在admin頁面呢?就需要修改admin頁面了。那么我們可以這樣做:
1、找到site-packages----->django----->contrib----->admin----->templates----->admin---->change_list.html
2、拷貝到自己的templates目錄下,然后找到相應的位置進行修改
3、這時候會涉及到模版語法,可以這樣弄:
在admin頁面定義changelist_view(self, request, extra_context=None):函數,返回變量,如下例子:

def changelist_view(self, request, extra_context=None):
try:
    # 保證Event的changelist頁面必須包含unit__id查詢字符串,即實現了只能查看單個unit的所有事件,而不能查看所有的事件。
    unit_id = int(request.GET['unit__id'])
except:
    raise Http404()

# 獲取sendingdata。
sendingdata = get_object_or_404(SendingData, unit__id=unit_id, user=request.user)

extra_context = extra_context or {}
extra_context['sendingdata'] = sendingdata

return super(EventAdmin, self).changelist_view(request, extra_context=extra_context)

 

4、然后在change_list.html中渲染直接用{{ sendingdata }}即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM