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