使用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第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量