zoukankan      html  css  js  c++  java
  • 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 访问浏览器:

  • 相关阅读:
    QuickSort(Java)
    MergeSort(Java)
    Silverlight中Datagrid添加Button列用于控制单行对象
    二叉搜索树(BST)demo
    svn ignore使用方法
    海量数据处理面试题及解决方法
    Android中的单元测试
    Ubuntu下配置Intellij的Android开发环境
    urlrewrite地址重写之后丢失css和js解决方案
    修改后 简单的 TCP server
  • 原文地址:https://www.cnblogs.com/chushujin/p/12540086.html
Copyright © 2011-2022 走看看