django 后台管理界面 administration 中有办法批量导入数据吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 后台管理界面 administration 中有办法批量导入数据吗相关的知识,希望对你有一定的参考价值。

参考技术A 在Poll类里定义__unicode__,例如

class Poll(models.Model):
def __unicode__(self):
return self.name本回答被提问者和网友采纳

django后台管理系统xadmin

Django xadmin介绍

Djangopython的重量级web框架,写得少,做得多,非常适合后端开发,它很大的一个亮点是,自带后台管理模块,但它自带的后台管理有点丑,而Xadmin是基于bootstrap开发的一套后台管理框架,界面非常美观,只需几步就可以替换自带的Django_admin

具体安装步骤

  1. xadmin在python2.x时代的安装方法

在python2.x时代,安装xadmin是通过如下命令

pip install xadmin

2.xadminpython3.6.x时代的安装方法

需要安装如下的包

pip3 install django-import-export
pip3 install django-reversion
pip3 install django-formtools==2.1
pip3 install future
pip3 install httplib2
pip3 install six
pip3 install django-crispy-forms

2.1 下载xadmin

https://github.com/sshwsfc/xadmin

2.2、解压缩,得到xadmin文件夹,复制到项目的extra_apps,解压缩,得到xadmin文件夹, 如下图所示:

技术图片

2.3、在django中的根目录下创建Python Package,命名为extra_apps(如果不存在此文件夹则创建, 然后 鼠标右键extra_app 随后 mark as sources root
Python Package是带init文件的,跟普通Package不同)

创建完extra_apps,需要在settings中配置一下extra_apps。设置为可搜索的路径

import os
import sys

# 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')) # 把extra_apps文件夹添加到搜索目录中

2.4、把xadmin文件夹复制到extra_apps

2.5、xadmin的配置

配置到 INSTALLED_APPS


## 显示中文
# Application definition
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
 
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

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

    'xadmin',
    'crispy_forms', # 注意crispy_forms之间是下划线隔开,不是横线
]

2.6、修改urls.pyadmin

import xadmin
from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    # url('admin/', admin.site.urls),
    url(r'^xadmin/', xadmin.site.urls),
]

2.7、迁移文件

python3 manage.py makemigrations
python3 manage.py migrate

迁移完成后,我们看到数据库多了几张表

技术图片

2.8、pycharm创建superuser 用户

python3 manage.py makemigrations
python3 manage.py migrate

至此完成。

如果报错,请先把原先旧的app里面admin.py里面的注册代码去掉,再试试

django2.X安装xadmin报错及解决方法

http://www.lybbn.cn/data/bbsdatas.php?lybbs=50

运行一下项目,访问

http://127.0.0.1:8000/xadmin/

xadmin的使用

1.需要在app中创建adminx.py文件

import xadmin
from repository import models
from xadmin import views

class UserProfileAdmin(object):
    ### 显示的字段名称
    list_display = ['id','name' ,'email','phone','mobile']
    
    # 搜索时可输入的字段内容
    search_fields = ['id', 'name', 'email', 'phone']
    
    # 点击id可进入详细界面进行编辑(默认的)
    list_display_links = ('id',)  
    
    ## 可编辑的列名
    list_editable = ['name' ,'email','phone','mobile']
    # list_filter = ['name' ,'email','phone','mobile']
    
    # 每页显示多少条
    list_per_page = 20 
    
    #根据id排序 
    ordering = ('id',) 
     
    #设置只读字段 
    readonly_fields = ('user_email',) 
    
    #显示本条数据的所有信息
    show_detail_fields = ['asset_name'] 

xadmin.site.register(models.UserProfile,UserProfileAdmin)

3.数据导出
如果想要导出Excel数据,需要安装xlwt

默认情况下,xadmin会提供ExcelCSV,XMLjson四种格式的数据导出,可以通过设置OptionClasslist_export属性来指定使用哪些导出格式(四种格式分别用xlscsvxmljson表示)或是将list_export设置为None来禁用数据导出功能

list_export = ('xls', 'xml', 'json')
list_export_fields = ('id', 'name', 'title')

4.设置全局的配置

# 全局修改,固定写法
class GlobalSettings(object):
    # 修改title
    site_title = 'xxx后台管理界面'
    # 修改footer
    site_footer = 'xxx的公司'
    # 收起菜单
    menu_style = 'accordion'
    
    # 设置 models图标
    # https://v3.bootcss.com/components/
    # http://www.yeahzan.com/fa/facss.html
    global_search_models = [models.Disk, models.Server]
    global_models_icon = {
        # Server: "glyphicon glyphicon-tree-conifer", Pool: "fa fa-cloud"
        models.Server: "fa fa-linux", models.Disk: "fa fa-cloud"
    }

    
# 将title和footer信息进行注册
xadmin.site.register(views.CommAdminView,GlobalSettings)
  1. 图表显示
data_charts = {
        "host_service_type_counts": {
            'title': '部门机器使用情况',
            'x-field': "business_unit",
            'y-field': ("business_unit"),
            'option': {
                "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}},
                "xaxis": {"aggregate": "count", "mode": "categories"}
            },
        },
        "host_idc_counts": {
            'title': '机房统计',
            'x-field': "idc",
            'y-field': ("idc",),
            'option': {
                "series": {"bars": {"align": "center", "barWidth": 0.3, "show": True}},
                "xaxis": {"aggregate": "count", "mode": "categories"}
            }
        }
    }
  1. 注册模型与对应的管理类
xadmin.site.register(models.Disk, DiskAdmin)
xadmin.site.register(models.Server, ServerAdmin)
xadmin.site.register(models.IDC, IDCAdmin)
xadmin.site.register(models.UserProfile, UserProfileAdmin)
xadmin.site.register(models.UserGroup, UserGroupAdmin)

django2.0.7版本下安装

  1. 安装

    pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2
  2. 注册app: settings.py

    INSTALLED_APPS = [
        # ...
        # xamin主体模块
        'xadmin',
        # 渲染表格模块
        'crispy_forms',
        # 为模型通过版本控制,可以回滚数据
        'reversion',
    ]
  3. 完成数据库迁移,xadmin需要自己的数据库模型类

    python manage.py makemigrations
    python manage.py migrate
  4. 设置路由换掉admin: 主urls.py

    # xadmin的依赖
    import xadmin
    xadmin.autodiscover()
    # xversion模块自动注册需要版本控制的 Model
    from xadmin.plugins import xversion
    xversion.register_models()
    
    urlpatterns = [
        # ...
        path(r'xadmin/', xadmin.site.urls),
    ]
  5. 创建超级用户

    # 在项目根目录下的终端
    python manage.py createsuperuser
    # 账号密码设置:admin | Admin123
  6. 完成xadmin全局配置

    # home/adminx.py
    # xadmin全局配置
    import xadmin
    from xadmin import views
    
    class GlobalSettings(object):
        """xadmin的全局配置"""
        site_title = "站点标题"  # 设置站点标题
        site_footer = "站点页脚公司"  # 设置站点的页脚
        menu_style = "accordion"  # 设置菜单折叠
    
    xadmin.site.register(views.CommAdminView, GlobalSettings)
  7. 在adminx.py中注册model

    from . import models
    # 注册
    xadmin.site.register(models.Banner)  # 每个表写一个
  8. 修改app:home的名字;xadmin页面上的显示效果

    # home/__init__.py
    default_app_config = "home.apps.HomeConfig"
    
    # home/apps.py
    from django.apps import AppConfig
    class HomeConfig(AppConfig):
        name = 'home'
        verbose_name = '我的首页'

更高级的vue admin

站点; https://github.com/PanJiaChen/vue-element-admin/blob/master/README.zh-CN.md

以上是关于django 后台管理界面 administration 中有办法批量导入数据吗的主要内容,如果未能解决你的问题,请参考以下文章

Django后台管理界面修改(源文件修改)

Django项目实践4 - Django网站管理(后台管理员)

django学习-管理界面视图

9.Django Admin进行web界面后台管理数据库

django 配置管理后台,出现多个 admin/admin/admin

django2中文界面