码迷,mamicode.com
首页 > 其他好文 > 详细

django安装使用xadmin

时间:2019-09-02 09:28:46      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:boot   新建   主题   说明   cascade   got   tps   get   self   

Xadmin介绍

直接替换掉Django自带的admin系统,并提供了很多有用的东西;完全的可扩展的插件支持,基于Twitter Bootstrap的漂亮UI。

  • 完全替代Django admin
  • 支持基于Twitter Bootstrap的UI主题
  • 支持可扩展的插件
  • 更好的过滤器,日期范围,数量范围等
  • 内置xls,csv,xml和json格式数据导出
  • 仪表板页面和小部件支持 (暂时用不到)
  • 现场书签
  • 完整的CURD方法(增删改查)

Xadmin安装

xadmin下载: https://github.com/sshwsfc/xadmin/tree/django2(记得要直接下载zip)

技术图片

 

 

源码集成:github下载源码(一定要下载django2的文件名为:xadmin-django2.zip,解压后里面有个xadmin就是我们需要的xadmin源码了)

项目的根目录创建一个文件夹为:extra_apps,将下载的好xadmin源码拷贝到extra_apps目录中如下:

技术图片

 

 

通过pycharm 选中extra_apps文件夹点击鼠标右键选中菜单mark directory as 选择 sources root就可以变成上面的蓝色文件夹目录就可以了。

技术图片

 

 

 

 安装依赖项:

#pip install git+git://github.com/sshwsfc/xadmin.git@django2

依赖项:
django-crispy-forms
django-import-export
django-reversion
django-formtools
future
httplib2
six

Xadmin配置

 settings.py配置

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,‘extra_apps‘))
sys.path.insert(0,os.path.join(BASE_DIR,‘polls‘))

INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
  ……
‘polls‘, #应用app
‘xadmin‘, ‘crispy_forms‘, ‘reversion‘, ]

 

urls.py配置

from django.contrib import admin
from django.urls import include, path
import xadmin

urlpatterns = [
    path(polls/, include(polls.urls)),
    path(‘admin/‘, admin.site.urls),
path(‘xadmin/‘,xadmin.site.urls),
]

setting.py设置成中文

LANGUAGE_CODE = zh-hans

TIME_ZONE = Asia/Shanghai

USE_I18N = True

USE_L10N = True

USE_TZ = False

 

bug修改

技术图片

 

 

TypeError at /xadmin/xadmin/userwidget/add/ render() got an unexpected keyword argument renderer错误

修改项目中xadmin/views/dashborad.py中的render(),在render()中添加参数:renderer=None,即可解决。

技术图片

 

 技术图片

 

 

运行项目

   先执行python manage.py makemigrations 然后执行python manage.py migrate 生成数据库

   执行 python manage.py runserver (如果缺少库的话自行安装相应的库就可以了),

   当访问后台的时候可以看到如下效果说明成功了

技术图片

 

 

 中文板式:

技术图片

 

 

 

创建管理员

python manage.py createsuperuser

 

Django admin修改用户密码

python manage.py shell  

from django.contrib.auth.models import User #引入管理员密码存放的数据库

user=User.objects.filter() #查找该数据库里有哪些用户

user 

输出user 可以看到用户名,我这里只有一个admin

[<User: admin>]     

重置密码,

user = User.objects.get(username=admin) #获取名称为admin的用户

user.set_password(123456) #设置密码

user.save()  # 保存user对象

 

Django admin修改注册表信息

xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件。
然后在adminx.py文件控制页面上需显示的内容。

Models模块

from django.utils import timezone
import datetime


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField(date published)

    def __str__(self):
        return self.question_text

    def was_published_recently(self):
        now = timezone.now()
        return now - datetime.timedelta(days=1) <= self.pub_date <= now


class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

adminx.py文件

在admin.py文件的同一目录新建一个adminx.py(注意只能是adminx.py,不能叫其它的名称)
在adminx.py里与之前的admin.py代码有一些不一样

  • 之前import admin, 这里import xadmin
  • 之前注册表时继承admin.ModelAdmin, 这里继承object
  • 之前inlines 关联的表(class MoreInfo)继承admin.StackedInline, 这里继承object
  • 之前可以有2种注册方式,可以用装饰器方法@admin.register(表类名),这里只能通过xadmin.site.register(表类名, xxx)方式
import xadmin
from .models import Question, Choice


class MoreInfo(object):
    model = Choice


class ControlQuestion(object):
    # 显示的字段
    list_display = (question_text, pub_date)
    # 搜索条件
    search_fields = (question_text,)

    # 每页显示10条
    list_per_page = 10

    # 在Question页面显示更多信息Choice
    inlines = [MoreInfo]


class ControlChoice(object):
    list_display = ["question", "choice_text"]


# 注册Question表
xadmin.site.register(Question, ControlQuestion)
xadmin.site.register(Choice, ControlChoice)

xadmin列表页显示

技术图片

 

 

技术图片

 

django安装使用xadmin

标签:boot   新建   主题   说明   cascade   got   tps   get   self   

原文地址:https://www.cnblogs.com/xiao-apple36/p/11442941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!