跳转到主要内容

Django-AlphaFilter提供了一个类似于date_hierarchy的按字母顺序过滤的管理组件,并提供了一个可用于其他地方的模板标签。

项目描述

Django AlphaFilter被设计为像Django默认的date_hierarchy管理过滤一样工作。它将可点击的字母放置在日期层次结构相同的位置 - 结果列表的顶部。

1.0版本中的变更 * 只支持Django 1.9、1.10和1.11 * 支持2.7和3.6版本的Python * 添加了Tox测试配置

0.7版本中的变更

  • 为模板标签添加了strip_params参数,以删除外部查询参数。

  • Django 1.5兼容

  • 由于Django的聚合中的错误,回退到Django 1.4中检索字母的先前方法。

  • 修复了urls中“&”的编码。

  • 将unfiltered_queryset添加到上下文中(感谢Ales Zabala Alava: https://github.com/shagi

0.6版本中的变更

0.5版本中的变更

  • 添加了一个新的模板标签,用于在普通模板中使用查询集和字段渲染字母过滤器,并可选地指定模板。

0.4版本中的变更

  • 添加了指定第三方应用以应用字母过滤器而不需要修改代码的能力(例如 django.contrib.auth)。使用 ALPHAFILTER_ADMIN_FIELDS 设置来实现此功能。

  • 现在包含文档说明!

0.3 版本的变更

  • ModelAdmin 类现在可以指定自己的 DEFAULT_ALPHABET 来替代全局设置。

  • DEFAULT_ALPHABET 现在可以是一个可调用的对象

安装

  1. 最简单的方法是使用 pip

    pip install django-alphafilter
  2. 如果您下载了源代码,可以通过运行 setup.py 脚本来进行安装

    cd /path/to/django-alphafilter/
    python setup.py install
  3. 'alphafilter' 添加到项目配置文件 settings.py 中,这样 Django 就能找到模板和模板标签。

默认字母表

默认字母表是显示在管理界面中的字符列表,即使该字符没有数据也会显示。随着数据的增加,字母表中的字母将被启用。任何不在默认字母表中的字符,但存在于数据中,将被动态添加。

由于涉及语言正确设计字母表的问题,默认字母表是一个名为 DEFAULT_ALPHABET 的设置。默认设置是 ASCII 字母表和数字。可以将 DEFAULT_ALPHABET 设置为一个字符串、列表、元组或可调用对象。

如果您只想使用 ASCII 字符,不要使用数字

DEFAULT_ALPHABET = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

德语字母表

DEFAULT_ALPHABET = u'0123456789A\xc4BCDEFGHIJKLMNO\xd6PQRS\xdfTU\xdcVWXYZ'

冰岛语字母表

DEFAULT_ALPHABET = u'0123456789A\xc1BD\xd0E\xc9FGHI\xcdJKLMNO\xd3PRSTU\xdaVXY\xdd\xde\xd6'

您可以通过在 ModelAdmin 类中添加一个 DEFAULT_ALPHABET 属性,在模型级别覆盖 DEFAULT_ALPHABET。例如

class TestNameAdmin(admin.ModelAdmin):
    model = TestName
    alphabet_filter = 'sorted_name'

    # A blank string only shows the characters in the database
    DEFAULT_ALPHABET = u''

字母表的顺序不会保持与输入相同,它将通过 Python 的列表排序方法进行排序。

在模型上使用字母过滤器

在模型的 admin.py 中,将 alphabet_filter 设置为字符字段的名称。例如

alphabet_filter = 'name'

您还必须为模型(或应用程序)创建一个模板,以覆盖管理员的 change_list.html 模板。

在您的项目模板目录中,您需要创建一个 admin 目录,以及一个名为应用程序的目录,可选地还有模型的名称。例如,如果您在名为 cooltags 的应用程序的 Tag 模型上添加过滤器,目录结构将如下所示

MyProject
    templates
        admin
            cooltags
                tag

创建一个名为 change_list.html 的文档,并将其放入应用程序目录(templates/admin/cooltags),以使其适用于该应用程序中的所有模型,或者将其放入模型目录(templates/admin/cooltags/tag)以使其仅适用于该模型。

change_list.html 文档应只包含一行

{% extends "alphafilter/change_list.html" %}

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

本发行版没有可用的源代码发行版文件。请参阅有关 生成发行版存档 的教程。

编译后的发行版

django_alphafilter-1.0-py2.py3-none-any.whl (18.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面