使用postgresql触发器为django用户创建徽章

django-pg-badges的Python项目详细描述


用户在满足某些定义的条件时可获得徽章 在badge.json文件中

然后创建一个徽章对象(数据库模型),将用户链接到徽章。

条件

条件是为授予徽章而进行的SQL检查。

如果设置触发条件,则可以访问变量new “更新”或“插入”。这是更新或插入后的数据库对象。

如果设置触发条件,则可以访问变量old “更新”或“删除”。这是更新或删除后的数据库对象。

触发器

我们希望一有条件就给徽章。即使 事件来自django应用程序之外的事件。

我们不想依赖芹菜定期检查徽章

  • 太频繁:这是一个性能bootleneck
  • 太晚了:让用户恼火

当“某物”改变时,检查每个徽章的支票。

要创建负责获得徽章运行的数据库触发器:

>>> 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中。

代码是徽章的唯一代码名

condition是将发出的查询,以检查徽章是否 应该获得

触发故障告知何时必须进行检查。其中一个插入, 更新或删除

安装

有关说明,请参见安装文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:删除并重新创建对象   HttpObjectAggregator上的java Netty 4泄漏异常   即使测试失败,java Gradle也会在测试阶段后执行任务   java更新JComboBox后,如何刷新框的长度   java当我单击按钮时,我的应用程序意外停止   java SpringBoot 2.2.1 groovyMarkupConfigurer异常   java spring webflux:如何从同步调用发布事件以进行异步处理?   java Viewpager“ViewGroup”更改背景色运行时   JavaJTree:检查选择的级别   java我想在所有网站href链接上添加前缀   java如何生成无分支代码?   用Java在DrawingCanvas上创建线条   使用jpos api的java打包子字段   Java映射到对象而不是另一个对象的现有方法可选<>吗?   java添加更改图形颜色的按钮