django之后台系统(admin)

Posted loveprogramme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于django之后台系统(admin)的主要内容,如果未能解决你的问题,请参考以下文章

django后台管理系统

django基础知识之后台管理Admin站点:

django 之admin后台管理

CMDB之Django admin 后台app操作

Django框架之admin管理后台

Django后台管理系统讲解及使用