Django测试开发-19-引入xadmin

一、将xadmin导入Django工程中

1.1 xadmin下载地址: https://github.com/sshwsfc/xadmin/tree/django2 

或者:

链接:https://pan.baidu.com/s/1VJPsN5GOW_xbiPb8t43oRg
提取码:nkei

1.2 下载压缩包

1.3 到zip目录下,进行pip3 install 压缩包 直到安装成功

1.4 只需要里面的xadmin文件夹

 

 

二、在项目下使用

2.1 在项目下新建extra_apps文件夹,并将压缩包解压至此文件夹

 

 

 

 2.2 extra_apps 右键------找到Mark Directory As-选择Sources Root,将设置为SourcesRoot

 

 

2.3 settings.py下新增

INSTALLED_APPS = [
    'django.contrib.admin',#管理网站
    'django.contrib.auth',#认证模块
    'django.contrib.contenttypes',#内部框架
    'django.contrib.sessions',#会话管理
    'django.contrib.messages',#消息框架
    'django.contrib.staticfiles',#映射的静态资源
    'my_app',#加载到全局中
    'vote',
    'xadmin', # xadmin新增
    'crispy_forms' # xadmin新增

]

 

2.4 settings.py下新增

import sys

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

2.5 urls.py中新增路由

url(r'^xadmin',xadmin.site.urls),

2.6 执行数据库同步

python manage.py makemigrations
python manage.py migrate

2.7 访问浏览器:http://127.0.0.1:8000/xadmin

 三、启动项目前可修改

3.1. 全局搜关键字:python_2_unicode_compatible   此方法改为从six中导入

例如:

from django.utils.encoding import python_2_unicode_compatible,smart_text

可拆分为

from django.utils.encoding import smart_text
from six import python_2_unicode_compatible

3.2  报错:ImportError: cannot import name 'six' from 'django.utils'  

解决方法:

1.pip3 install six

2.进入python3.6/site-packages

3.将six.py 复制到 django/utils即可

3.3 报错:No module named 'django.contrib.staticfiles.templatetags'

解决方法:

将from django.contrib.staticfiles.templatetags.staticfiles import static

替换成:

from django.templatetags.static import static

即可

 四、xadmin新建学生表

4.1 在extra_apps下的xadmin文件夹中models.py,新增Student表

class Student(models.Model):

    """学生表"""
    student_no = models.CharField(max_length=10,verbose_name="学号")
    student_name = models.CharField(max_length=30,verbose_name="姓名")
    student_age = models.IntegerField(verbose_name="年龄")
    student_score = models.IntegerField(verbose_name="分数")
    student_gender_select = (("M",""),("W",""))        # 性别做成为下拉选择框样式
    student_gender = models.CharField(max_length=10,
                                      choices=student_gender_select, # 设置性别选项
                                      verbose_name="性别",
                                      default=""
                                      )

    class Meta:
        verbose_name = "学生成绩"
        verbose_name_plural = verbose_name


    # def __str__(self):
    #
    #     return self.student_name

4.2 adminx.py注册

class ControlStudent(object):

    # 显示字段
    list_display = ('student_no','student_name','student_age','student_score','student_gender')

    # 搜索条件
    search_fields = ('student_name',)

    # 每页显示n条
    list_per_page = 5


xadmin.site.register(Student,ControlStudent)

4.3 执行数据库同步

python3 manage.py makemigrations

python3 manage.py migrate

4.4 访问浏览器:

 

posted @ 2020-03-21 16:45  旅行没有终点  阅读(717)  评论(0编辑  收藏  举报