django管理后台xadmin的简单配置

1、下载安装xadmin

https://github.com/sshwsfc/xadmin

解压出来找到requirements.txt

pip install -r requirements.txt

安装xadmin

cd到第一层目录:python setup.py install

 

2、新建一个测试用的工程

(py271-env) [root@V71 pys]# django-admin.py startproject t2

并修改配置settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',

]

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

修改中文显示和时区

 

修改urls.py

 

 

3、拷贝xadmin源码到工程中

(py271-env) [root@V71 t2]# mkdir -p extra_apps                                                #可以把第三方的app放到此目录
(py271-env) [root@V71 t2]# cp /shared/xadmin-master/xadmin ./extra_apps/    #拷贝的是xadmin的第二层源码目录
(py271-env) [root@V71 t2]# cp -r /shared/xadmin-master/xadmin ./extra_apps/

 

4、启动django工程测试

同步数据库,建立超级用户,并启动WEB

这个过程当中可能因为一些包没有被安装或版本不对频繁报错,需要重新安装,有的可能还要安装后重新编译安装PYTHON,比较反复

另外如果是PYTHON3加DJANGO2以上的版本,可能暂时支持得不够好,反复报错,网上有一些解决办法:

比如这个链接比较齐https://www.cnblogs.com/xingfuggz/p/10142388.html

即使如此,在成功启动WEB项目准备访问的时候还是有报错, xadmin login() got an unexpected keyword argument 'extra_context可以先访问admin,再访问xadmin

报错:'Media' object has no attribute 'add_js'可以通过修改python环境下

/pys/.virtualenvs/py371-env/lib/python3.7/site-packages/xadmin-0.6.1-py3.7.egg/xadmin/util.py(这是我使用的python3+django2的测试路径)的vendor方法解决,改成如下:

def vendor(*tags):
    css = {'screen': []}
    js = []
    for tag in tags:
        file_type = tag.split('.')[-1]
        files = xstatic(tag)
        if file_type == 'js':
            js.extend(files)
        elif file_type == 'css':
            css['screen'] += files
    return Media(css=css, js=js)

 

python2相对比较顺利一些

(py271-env) [root@V71 t2]# python manage.py makemigrations
No changes detected
(py271-env) [root@V71 t2]# python manage.py migrate

(py271-env) [root@V71 t2]# python manage.py createsuperuser

 

此时输入URL能访问XADMIN的话,说明XADMIN部署成功,接下来使用XADMIN实现对APP程序后台数据的管理

 

 

 

5、管理应用程序的后台数据

新建APP

(py271-env) [root@V71 t2]# django-admin.py startapp app1

修改工程的settings.py,导入app的路径和引用app

sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'app1'))

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
    'app1'
]

 

 

增加测试数据

(py271-env) [root@V71 app1]# vi models.py


from django.db import models

from __future__ import unicode_literals
# -*- coding: utf-8 -*-
# Create your models here.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class infos1(models.Model):
    name = models.CharField('姓名',unique=True,max_length=50)
    addr = models.CharField('地址',max_length=128)
    tel = models.CharField('电话',max_length=50)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = '信息表'
        verbose_name_plural = verbose_name

 

在应用的目录下增加adminx.py管理上面创建的表

(py271-env) [root@V71 t2]# vi app1/adminx.py

from django.contrib import admin

# Register your models here.
import xadmin
from xadmin import views


from .models import infos1

class infos1Admin(object):
    list_display = ['name', 'addr', 'tel']
    search_fields = ['name', 'addr']
    list_filter = ['name', 'addr', 'tel']

xadmin.site.register(infos1, infos1Admin)

 

同步数据库,重启工程测试

(py271-env) [root@V71 t2]# python manage.py makemigrations
Migrations for 'app1':
  app1/migrations/0001_initial.py
    - Create model infos1
(py271-env) [root@V71 t2]# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, app1, auth, contenttypes, sessions, xadmin
Running migrations:
  Applying app1.0001_initial... OK

此时访问xadmin可以对应用的后台数据进行编辑和管理

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值