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