拓展django后台

django为我们提供了一个很好的后台管理界面。这个后台管理界面提供了很完善的增删改查的功能,自定义显示的列,自定义编辑的列,自定义过滤条件等。

但是如果想在原有的后台管理界面推展一些功能,我们就要修改这个后台管理界面。在后台管理的官方文档有介绍一个叫Custom template options的章节介绍,里面介绍了自定义后台模板的两种方式:

1、替换原有模板,过程是:先从django的django/contrib/admin/templates/admin目录下面将要替换的模板文件拷贝出来,比如我们要替换列表页,那就将django/contrib/admin/templates/admin/change_list.html拷贝出来,放到自己的app模板目录下,在自定义地修改成自己想要的功能,然后在ModelAdmin中修改change_list_template的值为新的模板路径:

class SubjectAdmin(admin.ModelAdmin):
    change_list_template = "tbl/sbj_change_list.html";#app名称是tbl
    list_display = ('subject_no','title','accepted','submissions');
    list_filter = ('subject_no','title');
    search_fields = ('title',);
    raw_id_fields = ('auther',);
    date_hierarchy = 'create_time';
    ordering = ['subject_no','accepted','submissions'];
2、使用继承的方式:和上面的步骤类似,但是新的模板不是拷贝出来的,而是直接继承原有的django的模板:

#tbl/sbj_change_list.html

{% extends "admin/change_list.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
  <li>
    {% url cl.opts|admin_urlname:'add' as add_url %}
    <a href="{% add_preserved_filters add_url is_popup to_field %}" class="addlink">
      {% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
    </a>
  </li>
  <li>
  	<a href="https://www.baidu.com/">爬数据</a>
  </li>
{% endblock %}
然后和方法一一样修改ModelAdmin的change_list_template值。

运行,看到我们的后台列表页面多了一个按钮:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值