zoukankan      html  css  js  c++  java
  • Django中admin的高级应用

    一、背景

    在Django的开发过程中,我们会使用admin的后台管理的工具,这里记录一下使用的后台管理需要的东西。Django自身提供了一个简单的界面,可以对此进行二次开发。包括xadmin和bootstrap_amdin两个。这里使用的是boostrap_admin 

    二、使用

    1. 安装

    首先我们需要使用pip安装boostrap_admin的包,指令下面:

    pip install bootstrap_admin

    2.导入

    在settings.py的app添加模块的最开始的位置添加boostrap_admin模块

    三、使用

    1.设置title等信息

    # 设置title,header等信息
    admin.site.site_header = '图书管理系统'
    admin.site.site_title = '登录系统后台'
    admin.site.index_title = '后台管理'

    2.注册

    在Django的admin.py文件中注册生成的model模型

    # 注册相应的对应模型
    @admin.register(Browser)
    class BrowserAdmin(admin.ModelAdmin):

    如果不想注册某个APP

    # 不注册某个app应用
    admin.site.unregister(Group)
    admin.site.unregister(User)

    3.归档

    # 这个的作用是给出一个筛选机制(类似于归档内容)
    date_hierarchy = 'back_time'

    4.不显示的字段

    # 不显示的字段  隐藏一些信息
    exclude = ('borrow_info',)

    5.字段展示

    # 在查看修改的时候显示的属性,第一个字段带有<a>标签,所以最好放标题
    list_display = ('borrow_book_id', 'borrow_book_name', 'browser_total', 'borrow_book_number', 'book_remain', 'totals_statistics', 'hot_statistics', 'back_time')

    6.设置跳转的字段

    # 设置需要添加<a>标签的字段   可以实现跳转到指定的内容
    list_display_links = ('title',)

    7.过滤器

    # 激活过滤器,这个很有用
    list_filter = ('back_time', 'browser_total',)

    8.页面展示条数

    list_per_page = 20  # 控制每页显示的对象数量,默认是100

    9.增加快捷添加

    filter_horizontal = ('borrow_book_id', 'borrow_book_name')  # 给多选(多对多)增加一个左右添加的框

    10.设计自己的函数

    # 限制用户权限,只能看到自己编辑的文章 使用闭包
    def get_queryset(self, request):
        qs = super(BorrowBookInfoAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)

    四、总结

    通过上述的内容我们就可以实现model层的注册,在完成之后就可以通过后台的账号登录查看结果。

    五、参考

    https://tendcode.com/article/django-admin/

  • 相关阅读:
    Angular项目在npm install之后用ng serve启动发生错误
    (TODO)Angular的通道
    使用React+redux+Node.js+MongoDB开发(二)--使用redux
    Angular中使用DomSanitizer防范跨站脚本攻击类(XSS)的安全问题
    使用React+redux+Node.js+MongoDB开发(一)
    数组的数字和非数字下标的区别
    echarts绘制饼图时的一点特殊设置
    Angular项目中迭代生成的树,激活选中的节点,并将节点数据发送到父节点
    Ubuntu 设定壁纸自动切换的shell脚本
    Navicat for mysql linux 破解方法
  • 原文地址:https://www.cnblogs.com/future-dream/p/11963068.html
Copyright © 2011-2022 走看看