一个可定制的django管理员变更列表应用程序,可在管理员之外使用。
django-itemlist的Python项目详细描述
itemlist是一个可定制的django管理员变更列表,类似于在管理员之外使用的应用程序。 它可以用来创建对象的多用途分页列表,这些对象可以被搜索、筛选 并提供与管理变更列表类似的详细页面链接。
提供基于类的通用视图。
项目列表视图
- class itemlist.views.itemlistview
表示对象列表的页面,具有搜索框、列表筛选器、可排序列、分页和可选 详细页面的链接。
- 祖先(mro)
此视图继承来自以下django视图的方法和属性:
- django.views.generic.list.listview
- django.views.generic.list.baselistview < django.VIEW.GNIC.List.MuldoObjultIn < /LI>
- django.views.generic.base.view
< - 方法和属性
- 列出列
- 要在列中显示的字段名列表。支持双下划线查找。
- 列表过滤器
- 字段名列表或用于在列表中生成筛选器的django.contrib.admin.simpleListFilter实例。
- 列表搜索
- 要包含在搜索操作中的字段名列表。支持双下划线查找。
- 列表转换
- 将字段名映射到函数的字典,用于在显示前转换列值。变换 函数必须有两个参数transform(value,obj),其中obj是对应的对象 到列表行。
- 列出样式
- 将字段名映射到css样式类以添加到列的html的字典。
- 链接URL
- 用于创建指向详细页面的链接的命名URL。如果无(默认),则不创建链接。
- 链接夸格
- 链接url的link kwarg参数。默认值为“pk”
- 链接数据
- 真或假。确定如何为每行创建链接。如果false(默认),锚定标记是 使用如果true,span标记与具有 那一排。这对于使用javascript将内容加载到modals或ajax非常有用。
- 链接字段
- 要在其上创建链接的列名。必须是列表列中包含的名称之一。默认情况下 将使用第一列。
- 获取列表列()
- 返回要在列中显示的字段名。默认情况下,只需返回列表列的值
- 获取列表过滤器()
- 返回要显示的列表过滤器。默认情况下,只需返回列表过滤器的值
- 获取列表搜索()
- 返回要包含在搜索操作中的字段名列表。默认情况下,只返回值 列表搜索的
- 获取列表转换()
- 返回要用于列的转换字典。默认情况下,只返回 列表转换
- 获取列表样式()
- 返回列css样式的字典。默认情况下,只需返回列表样式的值
- 获取链接(obj)
- 返回当前对象/行的详细url链接。默认情况下,使用来自 链接夸格和属性值。
- 获取链接kwarg()
- 返回kwarg以用于详细的链接。默认情况下,只需返回link-kwarg
- 获取链接字段()
- 返回要在其上创建详细链接的列的名称。默认情况下,返回第一列。
示例视图.py:
fromdjango.utilsimporttimezonefromitemlistimportItemListViewfromlibrary.modelsimportTopicclassTopicList(ItemListView):template_name='myapp/topic_list.html'model=Topiclist_filters=['kind','parent']list_columns=['id','name','acronym','kind','parent__name']list_search=['name','kind__name']link_url='library:topic-detail'link_field='name'paginate_by=20defget_context_data(self,**kwargs):context=super().get_context_data(**kwargs)context['now']=timezone.now()returncontext
示例url.py:
fromdjango.urlsimportpathfromlibrary.viewsimportTopicListapp_label='library'urlpatterns=[path('',TopicList.as_view(),name='topic-list'),]
myapp/topic_list.html的示例。如果未指定,则默认模板与下面的模板完全相同:
{%extends"base.html"%}{%blockcontent%}{%include"itemlist/embed_list.html"%}{%endblock%}
另一个模板示例,与上面的相同。这允许您重新排序/省略组件。
{%include"itemlist/filters.html"%}{%include"itemlist/list.html"%}{%include"itemlist/pagination.html"%}