加载中...
Django综合篇之添加xadmin功能
发表于:2020-09-17 | 分类: Django全网站搭建
字数统计: 807 | 阅读时长: 3分钟 | 阅读量:

#添加xadmin功能

django2.0,以及django3.0直接使用xadmin功能已经不太友好了
如果直接使用pip的方式安装 django-xadmin会遇到很多错误的坑
这里使用一个新的方式添加xadmin功能
##下载文件
在这里https://gitee.com/voldemort/xadmin-django3/tree/master 我们需要的xadmin内容

下载之后只使用xadmin这个文件夹
将整个文件夹复制 然后在自己的项目文件夹下新建文件夹 extra_apps,然后xadmin粘贴过来

同时需要安装

django-crispy-forms==1.8.1
django-import-export==2.0.2
django-reversion==3.0.7
django-formtools==2.2.0
future==0.18.2
httplib2==0.9.2
six==1.14.0

上面标注的版本,最好是大于等于其版本
DjangoUEditor是根据老的xadmin新添加的功能

##添加到项目中
settings.py下新增
```python
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))

这样我们的项目就可以访问到xadmin了

INSTALLED_APPS = [
    'django.contrib.admin',#管理网站
    'django.contrib.auth',#认证模块
    'django.contrib.contenttypes',#内部框架
    'django.contrib.sessions',#会话管理
    'django.contrib.messages',#消息框架
    'django.contrib.staticfiles',#映射的静态资源

    'xadmin',                   # xadmin  相关
    'crispy_forms',             # xadmin  相关
    'DjangoUeditor',            # xadmin  内的富文本编辑器
	

]

将xadmin添加到项目中,毕竟他也是一个新的app,同时添加的还有crispy_forms

##添加路由
urls.py中新增路由

from django.urls import path, include
import xadmin
    # 富文本相关url
    path('xadmin/', xadmin.site.urls),                      # xadmin相关
    path('ueditor/', include('DjangoUeditor.urls')),        # 富文本编辑器

##将自己的app注册到xadmin
在admin.py同级目录下建立adminx.py,配置格式如下

import xadmin

from .models import *
# Register your models here.

import xadmin
from .models import *
from xadmin import views


# 此类可以定义admin后台显示的字段,比如文章列表显示标题,创建时间,
class BlogAdmin(object):
    """博客文章"""
    # 展示的字段
    list_display = ['id', 'title', 'excerpt', 'read_num', 'appreciate',
                    'created_time', 'tags', 'category', 'status']
    # 按文章名进行搜索
    search_fields = ['title']
    # 筛选
    list_filter = ['id', 'title', 'created_time', 'category', 'status']
    # 修改图标
    model_icon = 'fa fa-file-text'
    # 修改默认排序
    ordering = ['-id']

    # 设置只读字段
    readonly_fields = ['read_num']

    # 不显示某一字段
    exclude = ['']

    list_display_link = ['title']

    style_fields = {'content': 'ueditor'}


class CategoryAdmin(object):
    """分类"""
    list_display = ['id', 'name', 'created_time']
    search_fields = ['name']
    model_icon = 'fa fa-file-text'


class TagAdmin(object):
    """标签"""
    list_display = ['id', 'name']
    search_fields = ['name']
    model_icon = 'fa fa-file-text'


xadmin.site.register(Blog, BlogAdmin)
xadmin.site.register(Category, CategoryAdmin)
xadmin.site.register(Tag, TagAdmin)


# 修改xadmin的基础配置
class BaseSetting(object):
    # 允许使用主题
    enable_themes = True            # 开启自定义主题
    use_bootswatch = True


# 修改xadmin的全局配置
class GlobalSetting(object):
    site_title = '自己的全站'
    site_footer = '2020中自己建立的全站'

    # Models收起功能
    menu_style = 'accordion'


xadmin.site.register(views.CommAdminView, GlobalSetting)
xadmin.site.register(views.BaseAdminView, BaseSetting)

##更新数据库
建立与xadmin相关的表,并将表添加到数据库

python manage.py makemigrations
python manage.py migrate

##更换xadmin的logo
base.py更改源码,换logo

base.png

##汉化显示菜单名字

首先自己定义的model文件中,对于每一个变量,添加参数verbose_name

author = models.ForeignKey(UserInfo, verbose_name='作者', on_delete=models.CASCADE)
title = models.CharField(max_length=128, verbose_name="标题")

对于app.py文件做出对应的修改

from django.apps import AppConfig


class BlogConfig(AppConfig):
    name = 'blog'
    verbose_name = "博客管理"   #对应汉化
    mean_icon = 'fa fa-user'	 # 添加图标

最后一步,相对应的app下面的__init__.py文件中,添加如下:

default_app_config = "blog.apps.BlogConfig"
上一篇:
Django视频网站搭建--step06个人中心功能
下一篇:
Django视频网站搭建--step16后台邮件管理
本文目录
本文目录