三、xadmin后台管理
3.1见xadmin建站(预装)获取xadmin
3.2.xadmin的设置
(1)新建Python Package "extra_apps",把源码xadmin文件夹放到extra_apps文件夹下面,此时目录结构如下:
(2)把extra_apps右键mark为Source Root并在settings中加入
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
(3)因为我们用源码的xadmin,所以要卸载之前安装的
pip uinstall xadmin
(4)配置路由
把admin改成xadmin
from django.urlsimport path
import xadmin
urlpatterns = [
path('xadmin/', xadmin.site.urls),
]
(5)注册app
把下面两个app注册到settings.py的INSTALLED_APPS中
'xadmin',
'crispy_forms'
(6)重新生成数据库
python manage.py makemigrations
python manage.py migrate
(7)设置成中文
LANGUAGE_CODE='zh-hans'
TIME_ZONE='Asia/Shanghai'
USE_I18N=True
USE_L10N=True
USE_TZ=False
(8)创建一个管理员用户
python manage.py createsuperuser
访问后台:http://127.0.0.1:8000/xadmin
可以看到成功进入管理界面
与此同时,可建立与users相同的一级目录
hisinfor/modoles
class Hisinfor(models.Model):
name = models.CharField('基金名称',max_length=20)
num = models.CharField('基金编号',max_length=11)
course_name = models.CharField('信息',max_length=50)
add_time = models.DateTimeField('添加时间',default=datetime.now)
class Meta:
verbose_name ='舆情信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
完善功能,增加显示字段,搜索和过滤
hisinfor/adminx.py
from .modelsimport Hisinfor
class HisinforAdmin(object):
'''课程'''
# 显示的列
list_display = ['name', 'num', 'course_name', 'add_time' ]
# 搜索的字段,不要添加时间搜索
search_fields = ['name', 'num', 'course_name']
# 过滤
list_filter = ['name', 'num', 'course_name', 'add_time']
xadmin.site.register(Hisinfor, HisinforAdmin)
xadmin的全局配置
将全局配置修改:
如左上角:django Xadmin。下面的我的公司
主题修改,app名称汉化,菜单收叠。
使用Xadmin的主题功能。
把全站的配置放在users\adminx.py中:
(1)添加主题功能
import xadmin
from xadminimport views
# 创建xadmin的最基本管理器配置,并与view绑定
class BaseSetting(object):
# 开启主题功能
enable_themes =True
use_bootswatch =True
# 全局修改,固定写法
class GlobalSettings(object):
# 修改title
site_title ='舆情管理界面'
# 修改footer
site_footer ='橘涞公司'
# 收起菜单
menu_style ='accordion'
# 将基本配置管理与view绑定
xadmin.site.register(views.BaseAdminView,BaseSetting)
# 将title和footer信息进行注册
xadmin.site.register(views.CommAdminView,GlobalSettings)
修改app的名字
在apps.py里面配置app的显示名称
以users/apps.py为例,其它三个同样操作
默认apps.py里面的代码
from django.apps import AppConfig
class UsersConfig (AppConfig):name='users'
修改后:
from django.apps import AppConfig
class UsersConfig(AppConfig):
name='users'
verbose_name='用户'
还要在users/__init__.py中引用apps.py的配置
添加代码如下:
# users/__init__.py
default_app_config='users.apps.UsersConfig'
其它app也同样方法改成显示中文