3个月前 (06-14)  Django Python 网站建设  抢沙发  45 
文章评分 3 次,平均分 4.3
导语:在前文中(Django如何打造自定义后台和美化后台管理),我们选择了django-jet来构建美化的admin管理界面,并且期望添加一系列自定义内容和摆件。但是我们成功以v0.08打开后台后又出现一些问题,比如bookmark失效,文档中的设定不适用于老版本等问题,于是要想新的办法。本文用django-suit来达到美化的目的。
143227kj2wmizidok2jd2d

在前文中(Django如何打造自定义后台和美化后台管理),我们选择了django-jet来构建美化的admin管理界面,并且期望添加一系列自定义内容和摆件。但是我们成功以v0.08打开后台后又出现一些问题,比如bookmark失效,文档中的设定不适用于老版本等问题,于是要想新的办法。本文用django-suit来达到美化的目的。

django-suit(django-suit(http://django-suit.readthedocs.io)的安装和配置与文档上基本一致,使用非常方便。安装完成后只需要两步,INSTALLED_APPS 里面按照顺序加上’suit’,’django.contrib.admin’,两项。然后同步静态文件即可。这里不再详细赘述。

下一步,因为我们期望在后台操作一些模型的数据,根据需求,除了基本的增删改查,还需要导入导出功能。一般数据导入导出只要是通过csv, xls, json, txt等格式批量导入导出。有两个应用场景,第一是在前台,普通的提交文件,上传文件,然后读取,写入数据库。第二种就是后台管理界面的导入导出。前者我们已经做过很多次了,主要是后者。这里我们经过多次探索最终找到一个叫好的插件。

我们的要求:第一,不能更改太多配置,第二只需要在django-suit的基础上更改。我们尝试了三种:

(1)django-databrowse.这个插件是能满足条件的,但是奈何django版本不支持其中的一些内置函数。所以放弃。

(2)手动写,参照其他人的文章写出:

后来发现,modeladmin.model._meta, _meta这个部分在django1.5中是没有的。所以这个函数是无法实现的。只能放弃。

(3)终于找到一个很不错的django-import-export. 第一步:

第二步:

第三步:

第四步:如果按照

这个是不能成功的。这里有困惑,不太理解这些类是怎么工作的。所以这样不知道哪里有问题。后来参考其app例子里面的样例。改写如下:

说明,要先把export的类继承,然后再注册到admin里面才可以达到目的。经过验证,django1.5.2最多兼容到django-import-export的v0.4.2版本。

至此,完成想要的效果。




关于

发表评论

表情 格式

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享