项目作者: venicid

项目描述 :
this is 模拟 xadmin的stark组件
高级语言: Python
项目地址: git://github.com/venicid/stark-Xadmin.git
创建时间: 2018-08-23T02:06:37Z
项目社区:https://github.com/venicid/stark-Xadmin

开源协议:

下载


stark组件—(Xadmin)

(单例,继承,反射,面向对象,modelform 应用得很好!!)

1.注册表

  1. 单例模式 site = StarkSite()

2.生成url

  1. url(r'^stark/', ([],None,None))

3.数据列表展示

  1. 可自定义配置显示:
  2. list_display = ["__str__"]
  3. list_display_links = []
  4. modelform_class = []
  5. search_fields = []
  6. actions = []
  7. list_filter = []

4.增删改页面 modelform

5.分页

  1. 自定义分页组件 stark/utils/page.py
  2. class Pagination(object):
  3. ...
  4. ...

6.search模糊查询

  1. Q查询 or
  2. search_connection = Q()
  3. ...
  4. data_list = self.model.objects.all().filter(search_connection)

7.action批量处理

  1. def patch_init(self, request, queryset):
  2. queryset.update(price=123)
  3. ...
  4. patch_init.short_description = "批量初始化"
  5. actions = [patch_init]
  6. queryset = self.model.objects.filter(pk__in=selected_pk)

8.filter过滤

  1. list_filter = ['title','publish', 'authors']
  2. eg:{"publish":["<a href=''>全部</a>","<a href=''>南京出版社</a>","<a href=''>上海出版社</a>"]
  3. "authors":["<a href=''>全部</a>""<a href=''>yuan</a>","<a href=''>egon</a>"]
  4. }
  5. Q查询 and
  6. filter_condition = Q()
  7. data_list = self.model.objects.all().filter(search_connection).filter(filter_condition)

9.pop弹出

  1. 在一对多和多对多字段后渲染 +
  2. +对应的跳转路径
  3. 保存添加记录同时,将原页面的对应的下拉菜单中添加该记录