Django中一个最强大的部分是自动管理接口,在模型中读取元数据来提供一个强大的、生产就绪的接口,使内容提供者能立即用它向站点中添加内容,在这篇文档中,我们讨论如何去激活,使用和自定义Django的站点管理接口。 但是我们用的并不是django原生的后台管理,而是第三方修改过的admin插件

django-simpleui 后台主题框架安装使用

简介

simpleui 是一个基于django后台管理的主题,主要是为了美化和简化django内置的后台管理界面。 内置28款流行的主题

pip闪电安装100%兼容原生admin无需修改代码

多标签页面,各个模块更加清晰明了

配置简单,极速上手,在settings.py中加入simpleui后启动立即生效,效率提升 100%!让后端开发得心应手。

Element-UI + Vue 加持,让古老的django admin 焕然一新。

安装simpleui模板

pip install django-simpleui

在项目中的settings.py文件中加入一行simpleui

INSTALLED_APPS = [
    'simpleui',
    ···
]

文档 https://github.com/newpanjing/simpleui

配置admin

blog/admin.py

from django.contrib import admin
from .models import *


# Register your models here.

class BlogCategoryAdmin(admin.ModelAdmin):
    """
    分类admin
    """
    list_display = ('id', 'name', 'icon_data', 'get_all_blog_num', 'get_active_blog_num', 'is_nav')


class BlogTagAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'get_all_blog_num', 'get_active_blog_num')


class BlogAdmin(admin.ModelAdmin):
    list_display = (
        'uid', 'title', 'category', 'get_category_icon', 'click_nums', 'get_comment_num', 'world_count', 'viewed',
        'is_hot',
        'is_active', 'is_private', 'create_time', 'update_time')
    list_display_links = ('title',)  # 点击可进入详情的字段
    list_editable = ['category', 'is_active', 'is_hot', 'create_time']  # 可编辑的字段
    list_filter = ['create_time', 'update_time', 'is_hot', 'is_active']  # 过滤条件
    list_per_page = 10  # 一页显示的条数

    class SEOWordsInline(admin.TabularInline):
        """
        将有外键与之关联的表在内页显示
        """
        model = BlogSEO
        extra = 1
        style = 'tab'

    inlines = [SEOWordsInline]


class BlogCommentAdmin(admin.ModelAdmin):
    list_display = ['blog', 'content', 'author', 'is_active', 'create_time']
    list_display_links = ['blog']
    list_editable = ['is_active']
    list_filter = ['create_time', 'is_active']
    list_per_page = 20


class BlogLinksCategoryAdmin(admin.ModelAdmin):
    list_display = ['name', 'get_links_num', 'get_links']
    list_display_links = ['name']


class BlogLinksAdmin(admin.ModelAdmin):
    list_display = ['name', 'web_site', 'avatar_data', 'desc', 'category', 'is_active', 'is_nav']
    list_display_links = ['name']
    list_per_page = 10
    list_filter = ['category']
    list_editable = ['is_active', 'is_nav']


class BlogAboutAdmin(admin.ModelAdmin):
    list_display = ['id', 'content']


class BlogLeaveMessageAdmin(admin.ModelAdmin):
    list_display = ['author', 'content', 'is_active', 'create_time']
    list_per_page = 10
    list_filter = ['is_active', 'create_time']


class BlogDynamicsAdmin(admin.ModelAdmin):
    list_display = ['author', 'content', 'is_active', 'create_time']
    list_per_page = 10
    list_filter = ['is_active', 'create_time']


class BlogSiteConfigAdmin(admin.ModelAdmin):
    list_display = ['BLOG_SITE_NAME']


admin.site.register(BlogCategory, BlogCategoryAdmin)
admin.site.register(BlogTag, BlogTagAdmin)
admin.site.register(Blog, BlogAdmin)
admin.site.register(BlogComment, BlogCommentAdmin)
admin.site.register(BlogLinksCategory, BlogLinksCategoryAdmin)
admin.site.register(BlogLinks, BlogLinksAdmin)
admin.site.register(BlogAbout, BlogAboutAdmin)
admin.site.register(BlogLeaveMessage, BlogLeaveMessageAdmin)
admin.site.register(BlogDynamics, BlogDynamicsAdmin)
admin.site.register(BlogSiteConfig, BlogSiteConfigAdmin)

别忘了,还有一个users应用 users/admin.py

from django.contrib import admin
from .models import User
# Register your models here.

class UserAdmin(admin.ModelAdmin):
    list_display = ('uid', 'telephone', 'email', 'username', 'name', 'web_url', 'qq', 'gender', 'avatar', 'is_active', 'is_staff', 'is_superuser')


admin.site.register(User, UserAdmin)

现在创建玩超级管理员之后进入后台查看效果,是不是焕然一新的感觉 但是发现一个别扭的现象,就是应用名称是英文的,不太好看,这个我们只需要在应用下稍作配置就行了 blog/init.py

default_app_config = 'blog.apps.BlogConfig'

blog/apps.py

from django.apps import AppConfig


class BlogConfig(AppConfig):
    name = 'blog'
    verbose_name = '多点笔记'

各个app按照此方法配置就行了 下面开始填写一下假数据,以方便我们后面查看数据

最后修改:2020年6月27日 13:33