今天忽然想到個問題,我們在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 }}即可