Skip to main content

Django中用于统计的管理图表工具

项目描述

构建状态 覆盖状态 PyPI 项目

Django Admin Stats 允许您使用 django admin 创建和显示数据图表。它使用c3来显示图表。

<图> 页面浏览量图表 <图说明>

演示中的示例图表正在可视化

</figcaption> </figure>

特征

  • 使用“探索”功能轻松无配置图表。

  • 支持从 django 模型和trackstats 指标生成统计信息。

  • 还允许通过创建自己的 Registration子类来生成自定义统计信息。

  • 漂亮的带有 c3 的 JavaScript 图表,回退到没有 JavaScript 的普通表格。

  • 通过在条件上设置查询参数来添加过滤器和分组数据

限制

  • 图表的一维/轴始终是日期。没有办法指定不是“按日期”的图表。

安装

安装很简单。使用 pip安装django-adminstats,然后在您的配置中添加以下INSTALLED_APPS 。如果您已经有替代django.contrib.admin的东西,如果您想使用探索工具,则需要手动添加指向“探索”页面的链接。

INSTALLED_APPS = [
    ...
    'django_adminstats.apps.AdminConfig', # replaces django.contrib.admin
    'django_adminstats',
    ...
]

使用探索工具

探索工具允许任何有权访问管理站点的用户查看他们有权访问的任何模型的图表。与以下图表系统不同,这些图表是即时生成的,不需要任何设置。

explore 工具与 django admin 中已经存在的功能紧密集成。这样做的结果是,如果您想进行任何分组或过滤,您必须使用ModelAdmin.list_filter在管理页面上定义过滤器。

探索工具的好处之一是,一旦您应用了过滤器,您可以单击“查看条目”按钮,在常规管理页面中查看选定的条目。

使用图表

使用图表可以让您生成具有高度灵活性的图表,包括平均值、总和、子字符串查询等。大多数常规的 django 查询功能都可以在图表中使用,即使这些字段在管理员中通常不可见。

这很好,因为它很灵活,但它需要一些设置,并且由于能够在几乎任何字段上查询数据,因此向非超级用户授予创建/编辑访问权限并不是一个好主意。

登记统计

为了做任何事情,您需要注册一些模型或 trackstats 指标。你可以在tests/models.py中找到这方面的例子,但它的缩写如下所示:

from django_adminstats.registry import register_model

class Currency(models.Model):
    slug = models.CharField(max_length=10)
    name = models.CharField(max_length=100)
    current_usd_rate = models.DecimalField()
    sign = models.CharField(max_length=10, default='$')

class Transaction(models.Model):
    amount = models.DecimalField()
    currency = models.Foreignkey(to=Currency)
    date = models.DateTimeField(auto_now_add=True)

register_model(Transaction)

默认情况下,我们在模型上查找名为“日期”的字段,它应该是DateField或DateTimeField。如果你想使用不同的字段(例如,如果你使用 Django 的默认用户并且你想通过 'joined_at' 绘制图表),你需要创建一个注册子类。

from django_adminstats.registry import registry, register

class UserRegistration(ModelRegistration):
    date_field = 'joined_at'

register(UserRegistration())

创建图表

您可以在管理员中添加图表。为了让图表显示任何内容,您需要添加条件。默认情况下,它只会显示按日期字段绘制的所有项目的计数,如果要更改此值,则需要在过滤器查询、轴查询和组查询字段中添加内容。

首先,这些字段的内容被格式化为 URL 查询字符串,例如message=Hello%20World&x=y的过滤查询等价于 .filter(message='Hello World', x='y')。请注意,您只在过滤查询中使用 key0=value0&key1=value1形式,轴和组查询只是key0&key2。

其次,您可以像在普通 django 查询中一样使用查找和关系(例如field__gt=2或field__related_field)。

最后,您还可以通过执行 field:function来指定要在字段上使用的函数。例如id:count是字段留空时的默认轴查询。

演示

只需运行make demo并使用用户admin和密码admin登录。

变化

0.7.4

  • 使用视图而不是更改查看图表的权限

0.7.3

  • 修复描述生成中的错误

0.7.2

  • 使图表控制列表项在视觉上更加明显

0.7.1

  • 修复打包问题(文件丢失)

0.7.0

  • 添加新的“Explore”图表,升级用户可能要调整 INSTALLED_APPS。

0.6.3

  • 删除常规 setuptools 的 pbr,添加 VERSION 属性

  • 修复 flake 捕获的一些新问题

  • 添加图表截图

0.6.2

  • 修复具有相同统计数据的标准会相互冲突的问题

0.6.1

  • 使用按月跟踪统计指标修复编程错误,更好的测试覆盖率

0.6

  • 修复 tracstats 标准的自动完成选项

  • 修复自动完成无法(重新)正确初始化的问题

0.5

  • 在管理员中为查询字段添加自动完成功能,并重命名查询字段

0.4

  • 为查询字段和注册添加文档

  • 添加复制图表管理操作

0.3

  • 添加在 trackstats 按对象统计注册中过滤/分组相关模型的功能

项目详情


下载文件

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

源分布

django-adminstats-0.7.4.tar.gz (147.6 kB 查看哈希)

已上传 source

内置分布

django_adminstats-0.7.4-py3-none-any.whl (157.9 kB 查看哈希)

已上传 3 6