之前的十一天,基本上Django的一些基础点都已经说完了,今天说一下xadmin进阶这一部分。
其次发现 ,可能坚持不到30天了,又一次打脸了~ 能坚持多久算多久吧。
OK,第十二天开始。
今天在来说说xadmin,长时间不说xadmin,都已经忘了xadmin是干什么的了。这是xamdin的文档我们来看一下,他都能做什么。
image.png我们来慢慢看一下。
- Quickstart Guide
我们其实在xadmin使用里面基本都已经说全了,这里就不在重复了。
- Customization of xadmin
WTF? 什么也没有 ?
image.png
- Features of xadmin
一开始我以为出现在里面的数据都有连接,发现并不是,什么也干不了。
- Xadmin plugins
这是一个关键,里面讲述了xadmin的一下内置插件等。我们来看一下。
第一个
- 1.Action
其实呢,这个action就是这个操作
image.png现在只有一个删除操作,我们来加点别的试试。
比如我们每次点击address就增加一个'sss' ,我们来看一下。
创建文件 xadmin_action.py
编写Action
from django.http import HttpResponse
from xadmin.plugins.actions import BaseActionView
class MyAction(BaseActionView):
# 这里需要填写三个属性
action_name = "change_sss" #: 相当于这个 Action 的唯一标示, 尽量用比较针对性的名字
description = u'Test selected %(verbose_name_plural)s' #: 描述, 出现在 Action 菜单中, 可以使用 ``%(verbose_name_plural)s`` 代替 Model 的名字.
model_perm = 'change'
def do_action(self, queryset):
for obj in queryset:
#其实我们做的只有这一部分 ********
obj.address += 'sss'
obj.save()
return HttpResponse('{"status": "success", "msg": "error"}', content_type='application/json')
其实我们写的很少,然后再来绑定一下。
image.png看一下效果。
image.png点击Test selected
image.png页面会跳转到这
image.png然后我们重新看一下数据
image.png很强大。至于刷新问题,我也没找到方法,如果大家结局了这个问题,希望可以共享一下。
- 2.data filter
这个之前已经说过了,这里不重复了。
- 3.chart plugin
这个我们后面再讲
- 4 Bookmarks
这个使用起来十分简单,有两个参数需要配置
4.1. show_bookmarks 为True就显示 为False就隐藏
4.2. list_bookmarks
这个使用的地方我还没想到。不过我们可以按照文档来写
list_bookmarks = [{
'title': "first_bookmark", # 书签的名称, 显示在书签菜单中
'query': {'name': ""}, # 过滤参数, 是标准的 queryset 过滤
'cols': ('id', 'name', 'address'), # 显示的列
'search': '杭' # 搜索参数, 指定搜索的内容
}]
用起来很简单,其次我们在xadmin中添加标签呢。
image.png刚进到此界面,我们发现,我们根本就没有添加选项。我们来搜索一下看看。
image.png这样我们就可以添加了。
- 5.Data exporting
我们上面都不写的时候,有默认三种csv、xml、json
我们可以来改一下
image.png只剩下了两种。
image.png- 6.Refresh the list at given intervals.
- 7.Display data details
- 8.instant data edit
这几个都挺简单的,只需要配置相应的参数即可,这里不多解释了。
这里回来看一下chart plugin,一开始我以为会很麻烦,发现并不是,配置也很简单。
我们只需要加上这一句即可
data_charts = {
"user_count": {'title': u"course_num", "x-field": "addtime", "y-field": ("course_num"),
"order": ('addtime',)
}
}
效果是这样的。
image.png很强大!明天看一下,自定义插件。
网友评论