• django之后台系统(admin)


    一、admin后台系统的引入

    from django.contrib import admin
    from django.urls import path, include
    from . import views
    
    urlpatterns
    = [ path('admin/', admin.site.urls), path('', views.index, name='index'), path('user/', include("User.urls")), path('article/', include("Article.urls")), path('collection/', include("Collection.urls")), path('getcode/', views.send_code, name='code') ]

    每个新建项目的主目录下的urls.py文件的路由映射表中都有path('admin/', admin.site.urls),访问一下出现下面界面

     我们如何获取用户名和密码呢?

    二、Django管理页面的介绍

      为你的员工或客户生成一个用户添加,修改和删除内容的后台是一项缺乏创造性和乏味的工作。因此,Django 全自动地根据模型创建后台界面。

      Django 产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中。

      站点管理人员使用管理系统来添加新闻、事件和体育时讯等,这些添加的内容被显示在公众页面上。

      Django 通过为站点管理人员创建统一的内容编辑界面解决了这个问题。 管理界面不是为了网站的访问者,而是为管理者准备的。

    三、admin创建用户:

    使用创建的用户登录

     

     四、管理界面本地化

      不同国家的用户可以设置适用于本国的管理界面,通过在settings.py文件中进行设置

    LANGUAGE_CODE = 'zh-hans'  # 语言
    
    TIME_ZONE = 'Asia/Shanghai'  # 时区

    五、向admin中注册模型

      将各个应用的模型类注册在本应用内的admin.py文件中进行注册

    from django.contrib import admin
    from .models import Article, Category
    
    # Register your models here.
    admin.site.register(Article)
    admin.site.register(Category)

      后台展示

      将模型类在admin.py中注册过后,刷新管理页面,就可以对数据表中数据进行增删改查操作了。

    六、自定义管理界面

      Django提供了admin.ModelAdmin类,通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式。

      列表页属性:

        list_display:显示字段,可以点击列头进行排序

        list_filter:过滤字段,过滤框会出现在右侧

        search_fields:搜索字段,搜索框会出现在上侧

        list_per_page:分页,分页框会出现在下侧

      添加修改页属性:

        fields:属性的先后顺序

        fieldsets:属性分组

        注意:上面两个属性,二者选一。

    from django.contrib import admin
    from .models import Article, Category
    
    
    # Register your models here.
    class ArticleAdmin(admin.ModelAdmin):
        # 列表页
        # 列表页显示顺序
        list_display = ["title", "category", "created_time", "latest_edit", "author"]
        # 是否可以被点击
        list_display_links = ["title", "category", "created_time", "author"]
        # 过滤
        list_filter = ["category"]
        # 查找
        search_fields = ["category", "author"]
        list_per_page = 1
        
        # 编辑页
        # fields = ["title", "body", "category", "author"]
        # 分组时,如果漏点那个字段,就不会显示
        fieldsets = [
            ("一组", {
                "fields": ["title"]
            }),
            ("二组", {
                "fields": ["author"]
            })
        ]
        
        
    admin.site.register(Article, ArticleAdmin)
    admin.site.register(Category)
  • 相关阅读:
    linux 复 带进度条
    frp配置
    zookeeper_service 出错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
    zookeeper_service 出错 ........... are only available on JDK 1.5 and higher
    推荐eclipse插件Properties Editor
    使用ab对nginx进行压力测试
    Linux搭建Snmp服务
    第一个python程序
    如何执行Python代码
    pycharm 的调试模式 MAC版
  • 原文地址:https://www.cnblogs.com/loveprogramme/p/12470352.html
Copyright © 2020-2023  润新知