5.2离线使用xadmin包
把xadmin包放到项目目录下,便于修改xadmin中的代码。
首先解压下载好的 xadmin-django2.zip 压缩包,拷贝子文件夹中的xadmin文件夹,到项目中新建extra_apps文件夹,放入xadmin。
虚拟环境中卸载 xadmin安装包:
pip uninstall xadmin
把extra_apps目录mark为sources root
到settings中设置extra_apps文件夹的跟路径:
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
这样访问xadmin时自动从配置文件中查找相应的路径。
如果对添加的用户进行修改时,会弹出错误:
IndexError at /xadmin/users/userprofile/2/update/ list index out of range Request Method: GET Request URL: http://localhost:8000/xadmin/users/userprofile/2/update/ Django Version: 2.0.5 Exception Type: IndexError Exception Value: list index out of range Exception Location: D:\python\MXonline\extra_apps\xadmin\widgets.py in render, line 80 Python Executable: C:\Users\Administrator\Envs\oneenv\Scripts\python.exe Python Version: 3.6.5 Python Path: ['D:\\python\\MXonline\\extra_apps', 'D:\\python\\MXonline\\apps', 'D:\\python\\MXonline', 'C:\\Program Files\\JetBrains\\PyCharm 2018.1.2\\helpers\\pydev', 'D:\\python\\MXonline', 'D:\\python\\MXonline\\apps', 'D:\\python\\MXonline\\extra_apps', 'C:\\Program Files\\JetBrains\\PyCharm 2018.1.2\\helpers\\pydev', 'C:\\Users\\Administrator\\.PyCharm2018.1\\system\\cythonExtensions', 'C:\\Users\\Administrator\\Envs\\oneenv\\Scripts\\python36.zip', 'C:\\Users\\Administrator\\Envs\\oneenv\\DLLs', 'C:\\Users\\Administrator\\Envs\\oneenv\\lib', 'C:\\Users\\Administrator\\Envs\\oneenv\\Scripts', 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python36\\Lib', 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python36\\DLLs', 'C:\\Users\\Administrator\\Envs\\oneenv', 'C:\\Users\\Administrator\\Envs\\oneenv\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm '
pycharm中的错误信息是:
File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\base.py", line 910, in render_annotated return self.render(context) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\defaulttags.py", line 314, in render return nodelist.render(context) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\base.py", line 943, in render bit = node.render_annotated(context) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\base.py", line 910, in render_annotated return self.render(context) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\defaulttags.py", line 314, in render return nodelist.render(context) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\template\base.py", line 946, in render bits.append(str(bit)) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\utils\html.py", line 380, in <lambda> klass.__str__ = lambda self: mark_safe(klass_str(self)) File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\forms\boundfield.py", line 36, in __str__ return self.as_widget() File "C:\Users\Administrator\Envs\oneenv\lib\site-packages\django\forms\boundfield.py", line 118, in as_widget **kwargs File "D:\python\MXonline\extra_apps\xadmin\widgets.py", line 80, in render '</i></span>%s<span class="input-group-btn"><button class="btn btn-default" type="button">%s</button></span></div></div>' % (input_html[0], _(u'Today'), input_html[1], _(u'Now'))) IndexError: list index out of range [03/May/2018 15:11:36] "GET /xadmin/users/userprofile/2/update/ HTTP/1.1" 500 630373
具体解决办法是:https://blog.csdn.net/yuhan963/article/details/79167743
就是在xadmin中的 widgets.py文件的第 75行,
input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('\n') if ht != '']
换成:
input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('/><') if ht != ''] input_html[0] = input_html[0] + "/>" input_html[1] = "<" + input_html[1]
ctrl + alt +f 格式化代码后,行号变了
再看浏览器,ok:
5.2离线使用xadmin包的更多相关文章
- 【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???
pip 是 Python 包管理工具,该工具提供了对Python包的查找.下载.安装.卸载的功能.Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具. pip使用( ...
- Python3 离线安装TensorFlow包
Python3 离线安装TensorFlow包 1,下载包 官网地址:https://pypi.org/project/tensorflow/1.1.0rc2/#files 清华镜像:https:// ...
- centos7离线安装rpm包自动解决依赖
离线安装rpm包自动解决依赖参照https://blog.csdn.net/u011396718/article/details/80153515当生产环境由于安全原因处于断网状态的时候.通过本地源的 ...
- 离线下载pip包安装
Host-A 不能上网,但是需要在上面安装python-package 通过另外一台能上网的Host-B主机 1. 下载需要离线安装的Packages 在Host-B上执行如下命令: 安装单个Pack ...
- 离线下载pip包进行安装【转】
Host-A 不能上网,但是需要在上面安装Python-package 通过另外一台能上网的Host-B主机 1. 下载需要离线安装的Packages 在Host-B上执行如下命令: 安装单个Pack ...
- centos 6 yum源记录,离线下载rpm包的办法
wget -O /etc/yum.repos.d/CentOS6-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo rp ...
- Windows设置国内源阿里云镜像加速与离线安装pip包的方法
Windows设置国内源阿里云镜像加速1.先在 windows “文件资源管理器” 地址栏 输入 %APPDATA% 按回车,打开程序自定义设置文件夹然后,创建名为 pip 的文件夹,用于存放 pip ...
- CentOS里下载和离线安装rpm包
离线下载rpm包 yum --downloadonly --downloaddir=/home/packages install mariadb-devel 安装离线rpm包 进入下载包的 ...
- [开发技巧]·如何让离线安装Python包
[开发技巧]·如何让离线安装Python包 1.问题描述 PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI. ...
随机推荐
- 205-react SyntheticEvent 事件
参看地址:https://reactjs.org/docs/events.html
- python高级之Flask框架
目录: Flask基本使用 Flask配置文件 Flask路由系统 Flask模版 Flask请求与响应 Flask之Session Flask之蓝图 Flask之message 中间件 Flask插 ...
- Spark Shuffle(三)Executor是如何fetch shuffle的数据文件(转载)
1. 前言 在前面的博客中讨论了Executor, Driver之间如何汇报Executor生成的Shuffle的数据文件,以及Executor获取到Shuffle的数据文件的分布,那么Executo ...
- 制造抽象基类--《C++必知必会》 条款33
抽象类,含有纯虚函数的类,不可以创建对象. 然而,有时我们并不需要某个函数定义为纯虚函数,但是任然希望此类像抽象类一样,不可以创建对象. 方法1:通过确保类中不存在共有构造函数来模拟抽象基类的性质.意 ...
- zw“小数据”理论也碰上了“黑天鹅”
4月上旬,在blog<大数据和高频量化交易 >,我们曾经说过: 实战测试,数据越多,反而会影响精度.目前个人数据分析的一个重点,就是"小"数据.老子<道德经·第六 ...
- Flume环境安装
源码包下载: http://archive.apache.org/dist/flume/1.8.0/ 集群环境: master 192.168.1.99 slave1 192.168.1.100 sl ...
- 根据Excel文件中的内容,修改指定文件夹下的文件名称
问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件“123.jpg”修改为“1.jpg”.
- ngular6开发不完全笔记(二)-- 管道
自定义管道 管道(过滤器)为过滤数据显示下列list数据 pip.ts 文件 import { Pipe, PipeTransform } from '@angular/core'; import { ...
- 同样的输入,为什么Objects.hash()方法返回的hash值每次不一样?
背景 开发过程中发现一个问题,项目中用Set保存AopMethod对象用于去重,但是发现即使往set中添加相同内容的对象,每次也能够添加成功. AopMethod类的部分代码如下: public cl ...
- POJ 1840 Eqs(乱搞)题解
思路:这题好像以前有类似的讲过,我们把等式移一下,变成 -(a1*x1^3 + a2*x2^3)== a3*x3^3 + a4*x4^3 + a5*x5^3,那么我们只要先预处理求出左边的答案,然后再 ...