为您的Django用户使用PostgreSQL触发器创建徽章
项目描述
用户通过满足在badge.json文件中定义的一些条件来获得徽章。
然后创建一个徽章对象(数据库模型),将用户与徽章关联。
条件
条件是用于颁发徽章的SQL检查。
如果您将trigger_contition设置为“update”或“insert”,则可以访问变量NEW。这是更新或插入后的数据库对象。
如果您将trigger_contition设置为“update”或“delete”,则可以访问变量OLD。这是更新或删除后的数据库对象。
触发器
我们希望徽章在满足条件后立即颁发。即使事件来自Django应用程序之外的来源。
我们不想依赖celery定期检查徽章
太频繁:这是一个性能瓶颈
太晚:对用户来说很烦人
在“某事”改变时检查每个徽章的条件。
要运行创建负责徽章获得的数据库触发器的命令
>>> python manage.py create_badge_triggers
当您更改badge.json(添加、更新或删除徽章)时,运行此命令以在数据库中反映这些更改。
badge.json示例
` [{"name": "Pionner", "code": "pionner", "condition": "age(NEW.date_joined) > interval '1 year'", "trigger_condition": "update", "trigger_table": "auth_user", "user_field": "id" }, {"name": "Collector", "code": "collector", "condition": "count(id) >= 5 from dummy_sketch where user_id = NEW.user_id", "trigger_condition": "insert", "trigger_table": "dummy_sketch", "user_field": "user_id" }, {"name": "Star", "code": "star", "condition": "hit_views > 1000 ", "trigger_condition": "update", "trigger_table": "dummy_sketch", "user_field": "user_id" }] ` name 是徽章的名称,它将在前端或 API 中显示。
code 是徽章的唯一代码名称。
condition 是检查徽章是否应被获得的查询。
trigger_condition 说明了何时必须进行检查。可以是插入、更新或删除之一。
安装
有关说明,请参阅 安装 文件。
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
django-pg-badges-0.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7f92f8a8ebfdff42e1e39433ffc844c4d46360de48c0f41f31c0e54e85b13204 |
|
MD5 | 432abca3b65e7a1df798f495f429f42b |
|
BLAKE2b-256 | 1f9a70cebf1594a84db0b697c2ae4dc5aa16a6c24184b57eee165de5af1b145f |
django-pg-badges-0.1.linux-x86_64.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a0fd0cf3e69959cf3462388f4d3608b5ec83bda55fe9c9ffacd67147ac9b0af7 |
|
MD5 | 69a9e8f96b34b84e880e81028f4f2150 |
|
BLAKE2b-256 | 6e9db38f2bbf8d988da316c177d83e765d2969c9530eb6042d7dfe708cace472 |