今天忽然想到个问题,我们在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 }}即可

posted on 2018-10-18 12:19  海燕。  阅读(2280)  评论(0编辑  收藏  举报