通过xadmin或者suit-v2快速搭建后台管理系统

一、xadmin安装和注册使用

pip install xadmin#pip升级后这种安装就报错
python -m pip install xadmin

184239_jVOA_3018050.png

用第二行的安装依旧报错

于是,只能百度了,依靠github上的下载包安装

参考解决方法:https://blog.csdn.net/qingche456/article/details/58279692

git地址:https://github.com/sshwsfc/xadmin

1.安装xadmin

管理员身份进入xadmin-master所在位置

python setup.py install

184907_5Iyy_3018050.png

安装成功

2.将xadmin注册到settings中

    'xadmin',
    'crispy_forms',

185541_hvF7_3018050.png

3.修改项目的urls.py,替换默认的admin

import xadmin
urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
]

185745_UdEl_3018050.png

4.设置pycharm文件模板

18192137_41w0.jpg

5.在每个app中新建adminx.py文件,在此处注册app的model 

  • list_display 展示

  • search_fields 搜索

  • list_filter 过滤

6.添加部分接口

235212_8mO6_3018050.png

在项目初始化的__init.py__文件中增加

default_app_config = 'star.app.UsersConfig'

225102_KBth_3018050.png

在model.py文件中增加引入

from django.contrib import admin

在APP下的adminx.py中增加引入和注册(以下为imgs_db的APP示例)

#-*- coding:utf-8 -*-

import xadmin
from xadmin import views
from xadmin.plugins.auth import UserAdmin
from xadmin.layout import Fieldset, Main, Side, Row
from django.utils.translation import ugettext as _

from imgs_db.models import Imgs,Imgs_name



class UserProfileAdmin(UserAdmin):
    def get_form_layout(self):
        if self.org_obj:
            self.form_layout = (
                Main(
                    Fieldset('',
                             'username', 'password',
                             css_class='unsort no_title'
                             ),
                    Fieldset(_('Personal info'),
                             Row('first_name', 'last_name'),
                             'email'
                             ),
                    Fieldset(_('Permissions'),
                             'groups', 'user_permissions'
                             ),
                    Fieldset(_('Important dates'),
                             'last_login', 'date_joined'
                             ),
                ),
                Side(
                    Fieldset(_('Status'),
                             'is_active', 'is_staff', 'is_superuser',
                             ),
                )
            )
        return super(UserAdmin, self).get_form_layout()

class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True

class GlobalSettings(object):
    site_title = "项目后台管理系统"
    site_footer = "star之星"
    # menu_style = "accordion"

class test_img_up(object):
    list_display = ('id','name')
xadmin.site.register(Imgs_name, test_img_up)

class img_up(object):
    list_display = ['id','img','single']
    filter_horizontal = ['imgs',]
xadmin.site.register(Imgs, img_up)

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

运行

235732_1B92_3018050.png

报错,没有模型‘odf’

安装方式有问题,依赖缺少

执行安装:

pip install -r requirements.txt

231230_ljpU_3018050.png

安装成功

——————————————————————————————

如果是先升級django到2.0+版本的

092203_rjYY_3018050.png

还是找不到启动程序

092759_WAhD_3018050.png

093117_NZWQ_3018050.png

寻找pip.exe和python.exe所在路径,设置到环境变量中去

C:\Program Files\Anaconda3\Scripts\pip.exe
C:\Program Files\Anaconda3\python.exe

093530_69tF_3018050.png

这种方法依旧报错,试着python可以运行,应该只是pip升级到10版本后就会有这种报错

最终解决方法:到pip的安装包目录下删除包文件和启动文件,在pip官网重新下载安装

pip地址:https://pypi.org/project/pip/#files

方法:解压安装文件,以管理员方式cmd到该文件夹下

python setup.py install

131755_fGR2_3018050.png

成功安装可执行pip操作

———————————————————————————————

231243_u3h4_3018050.png

报错,网友的解决办法是把django-formtools从1.0升级到2.0

django-formtools==2.0#txt文本里写,然后执行安装依赖

以下为txt文本内容

django-formtools==2.0

233812_Uvrg_3018050.png

run,可以访问

python manage.py migrate
python manage.py makemigrations
python manage.py migrate

注意:一定要再次初始化,不然访问报错

234033_o3jG_3018050.png

页面已经可以访问:http://127.0.0.1:8222/xadmin/,感觉速度会变慢很多

234254_DQh0_3018050.png

后台主题可以更换

234424_fpwc_3018050.png

234441_MeFY_3018050.png

之前做的app数据也有调进来,ok

7.其他-admin.py,xadmin.py的中文修改

7.1显示中文model名称

model.py

class BookReviewWeibo(Weibo, BookReview):    
        
    class Meta:
        verbose_name = '微读书'
        verbose_name_plural = '微读书'

设置verbose_name和verbose_name_plural后,admin中显示自定义的model名

通过建立模型使用Model类的内部类Meta

有两个特殊的选项:verbose_name和verbose_name_plural。顾名思义,verbose_name为model提供了一个更容易让人阅读的名称,而verbose_name_pluralze则是这个名称的复数形式。一般情况下,我会使用一个中文的verbose_name,由于中文不区分单复数,因此通常会将同一个中文字符串赋值给verbose_name和verbose_name_plural。

————————————————————————————————————————————

但是,django2.0的部分语法有改变

原先下载的xadmin-master不能使用,请下载:

https://github.com/sshwsfc/xadmin/tree/django2

此版本适合django2

————————————————————————————————————————————

7.2 xadmin.py导出的csv(xml,excel)或者json有乱码

101303_nccG_3018050.png

101246_t8a2_3018050.png

主要是encode问题,需要把utf-8改成gbk

101206_V611_3018050.png

8.修改xadmin的图标

参考文档:https://www.cnblogs.com/adc8868/p/7506973.html

 

 

另一种美化思路:

二、使用suit-v2美化Django Admin(兼容Django新版本!)

安装使用方法:https://zhuanlan.zhihu.com/p/26876869

还未实验,看介绍不错

 

三、django使用bootstrap快速美化 admin后台(要求django版本小于1.9)

1、安装应用

python -m pip install django-admin-bootstrapped  

193000_cpCn_3018050.png

安装成功,django也被迫升级到1.11.5版本

193038_7m8D_3018050.png

193311_fftv_3018050.png

193326_g8Tf_3018050.png

打开以前的某个应用可能会发现报错

第一个错:admin.py里面

filter_horizontal = ('imgs',)

应该是一个多对多的,注释了

第二个错:setting.py里面增加中间件单独的类

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',

    # THIS MIDDLEWARE
    'myapp.middleware.shortcircuit.ShortCircuitMiddleware',

    # SOME OTHER MIDDLE WARE YOU WANT TO SKIP SOMETIMES
    'myapp.middleware.package.MostOfTheTimeMiddleware',

    # MORE MIDDLEWARE YOU WANT TO SKIP SOMETIMES HERE
)

194135_KZrk_3018050.png

不再报错

194301_gOR9_3018050.png

194330_XUYo_3018050.png

运行后依旧报错ImportError: No module named 'myapp'

 

2.setting.py里面添加

INSTALLED_APPS = (
    'django_admin_bootstrapped',
    'django.contrib.admin',

    ...
)

注意:

184304_RfmF_3018050.png

 

参考文档:

1.通过xadmin快速搭建后台管理:https://blog.csdn.net/wwwdc1012/article/details/72814642

2.神级程序员:最火Django+最强Xadmin打造一款平台!企业级项目:http://baijiahao.baidu.com/s?id=1589834449796360029&wfr=spider&for=pc

3.django使用bootstrap快速美化 admin后台:https://www.cnblogs.com/hb91/p/5424290.html

 

——————————————————————————————————

其他不知为嘛报错的:

1.run时候不保存,访问后台页面就报错,django.db.utils.ProgrammingError: (1146, "Table 'star.django_session' doesn't exist")

194905_D6IS_3018050.png 

解决方法:

python manage.py migrate --fake-initial

195004_U9SW_3018050.png

之后会增加一些表

195101_t4eK_3018050.png

再次访问就可以啦!

 

参考文档:

1.Django:如何admin管理界面中显示中文model名称:http://www.nanerbang.com/article/33/

转载于:https://my.oschina.net/u/3018050/blog/1797462

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值