跳转到主要内容

Django Utils是一个包含一些方便工具的模块,这些工具不包括在标准Django安装中

项目描述

构建状态

django-utils test status

覆盖率

https://coveralls.io/repos/WoLpH/django-utils/badge.svg?branch=master

Django Utils是一个包含小型Django辅助函数、实用程序和类的集合,这些函数和类使常见模式更短更易于实现。它绝对不是一个完整的集合,但在过去为我提供了很多帮助,我将继续扩展它。

例如

  • Admin Select(下拉)过滤器

  • Admin Select2(自动完成下拉)过滤器

  • Admin JSON子字段过滤器

  • 基于枚举的选择字段

  • 具有自动__str____unicode____repr__函数的模型,这些函数基于名称和/或缩写使用简单的混合类。

  • 具有自动updated_atcreated_at字段的模型

  • 具有基于name属性的自动缩写的模型

  • 迭代预定义块中的查询集以防止内存不足错误

该库依赖于Python Utils库。

文档可在以下位置找到: http://django-utils-2.readthedocs.io/en/latest/

安装

要安装

  1. 运行 pip install django-utils2 或在源目录中执行 python setup.py install

  2. django_utils 添加到您的 INSTALLED_APPS

如果您想运行测试,请运行 py.test(在 tests/requirements.txt 中有要求)

管理员选择/下拉/自动完成(JSON)过滤器

所有标准管理员列表过滤器都可通过 django_utils .admin.filters 使用

  • 原始过滤器(例如,SimpleListFilter

  • 基本选择/下拉过滤器:SimpleListFilterDropdown

  • 基于 select2 的自动完成下拉过滤器:SimpleListFilterSelect2

在 PostgreSQL 上,您还可以根据给定的路径过滤 JSON 字段

class SomeModelAdmin(admin.ModelAdmin):
    list_filter = (
        JSONFieldFilterSelect2.create('some_json_field__some__sub_path'),
    )

这将根据 some_json_field 命名的 JSON 字段进行过滤,并查找类似这样的值

{"some": {"sub_path": "some value"}}

默认情况下,JSON 过滤器的结果将缓存 10 分钟,但可以通过创建参数进行更改。

选择使用

为了启用易于使用的选项,这些选项比 Django 3.0 的选项系统更方便,您可以使用此选项

from django_utils import choices


# For manually specifying the value (automatically detects ``str``, ``int`` and ``float``):
class Human(models.Model):
    class Gender(choices.Choices):
        MALE = 'm'
        FEMALE = 'f'
        OTHER = 'o'

    gender = models.CharField(max_length=1, choices=Gender)


# To define the values as ``male`` implicitly:
class Human(models.Model):
    class Gender(choices.Choices):
        MALE = choices.Choice()
        FEMALE = choices.Choice()
        OTHER = choices.Choice()

    gender = models.CharField(max_length=1, choices=Gender)


# Or explicitly define them
class Human(models.Model):
    class Gender(choices.Choices):
        MALE = choices.Choice('m', 'male')
        FEMALE = choices.Choice('f', 'female')
        OTHER = choices.Choice('o', 'other')

    gender = models.CharField(max_length=1, choices=Gender)

即将推出 PostgreSQL ENUM 字段,将自动帮助创建枚举(如果需要)。

项目详情


下载文件

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

源代码发行版

django-utils2-3.0.2.tar.gz (22.8 kB 查看散列)

上传时间 源代码

构建分发版

django_utils2-3.0.2-py2.py3-none-any.whl (21.8 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持