拓展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 %}
  
  • {% url cl.opts|admin_urlname:'add' as add_url %} {% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
  • 爬数据
  • {% endblock %}
    然后和方法一一样修改ModelAdmin的change_list_template值。

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


    你可能感兴趣的:(python,django)