8.Django之漂亮的Admin

该文章仅供学习,如有错误,欢迎指出
项目配置过程中,若有错误,请滑倒文章底部有部分错误解决方案。也可在底下留言

之前在群里面看大佬们"炫技",有提到Django的Admin管理系统

这里提到了一个app叫做 xadmin

于是我想尝试一下

话不多说上手

下载Xadmin

网址http://www.xadmin.io/ (官网对他的介绍是一款基于bootstrap3的强大的django插件系统)

很可惜,Django的官网似乎已经停止了维护

但是github上依旧有他的项目,地址https://github.com/sshwsfc/xadmin

clone一下到自己的桌面上

......

于是我们就得到了一个xadmin-master的包

其余的依赖

django>=2
django-crispy-forms>=1.6.0
django-import-export>=0.5.1
django-reversion>=2.0.0
django-formtools==2.0
future==0.15.2
httplib2==0.9.2
six==1.10.0
复制代码

直接pip安装 很简单不麻烦

文档在哪里?

https://xadmin.readthedocs.io/en/latest/quickstart.html

应用

创建一个django项目

myxadmin是我的项目包

apps是用于存放我所创建的app的文件夹

extra_apps用于存放第三方app的文件夹,我们将xadmin文件夹放到该文件夹下面

这里我们需要注意的一个问题是django的流程

当我们访问http://127.0.0.1:8000/admin的时候,django会先进入我们的配置

发现我们的admin的时候进入

但这里我们需要将xadmin来代替admin

于是我们要这里做

1.将自己创建的所有app下的admin.py全部注释掉 && 并且你你可以在你的项目下创建一个adminx.py文件

那么你所要注册的模型类就不再是写在molde类下面,而是adminx.py下面

2.在setting.py配置下,插入如下内容,都是用于美化我们的界面

3.将项目环境加入到系统环境中

4.将admin变成xadmin

5.python manage.py runserver

的确,相对于之前的admin画面,这个后台相对于更加美观

注册我们的模型类

from .models import Student
import xadmin


class StudnetAdmin(object):
    list_display = ['title','num']  #设置数据表在后台显示的字段
    list_filter = ('country',)      #可过滤字段
    search_fields = ('name', 'city',)   #可搜索字段
    list_editable= ['is_hot'],     #可编辑
    style_fields = {"goods_desc": "ueditor"} #继承ueditor
xadmin.site.register(Student,StudnetAdmin)
复制代码

我们需要注意的是,StudentAdmin我们引用的不再是admin.AdminMOdel,而是object

千万不要因为没有智能提示就以为没有这类属性,还是可以应用的

哇!这个主题真丑

如果你一点都不专一,想要看看xadmin下不同的主题,那么在你的xadmin.py下进行基本设置的修改

class BaseSetting(object):
    enable_themes = True  #是否可以切换主题
    use_bootswatch = True #更多的主题功能
xadmin.site.register(xadmin.views.BaseAdminView,BaseSetting)
复制代码

当然如果你有多个app,你也只需要在一个app下修改就行了。

什么 ! 名称跟页脚也丑? 改啊!

class GlobaSetting(object):
    site_title = "Alpaca"   #设置标题
    site_footer = "Alpaca的公司"  #设置页脚
    menu_style = "accordion" #将左边的列表转换成可缩进形式

xadmin.site.register(xadmin.views.CommAdminView,GlobaSetting)
复制代码

可以,帅爆了

应用列表为英文太难看!

/polls/apps.py

from django.apps import AppConfig


class PollsConfig(AppConfig):
    name = 'polls'
    verbose_name ="应用"
复制代码
/polls/init.py

default_app_config = "polls.apps.PollsConfig"
复制代码

报错请看这里

因为我之前下的似乎是版本的原因,这里出现了一个错误

导致我无法进入超级用户

这里我们看他的报错,并且进入到该行

将代码如下修改,因为之前匹配的是\n

既然\n匹配失败,那我们编程'\><',就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值