支持多个关联对象和快速非规范化查找的灵活活动流

actable的Python项目详细描述


https://badge.fury.io/py/actable.svghttps://travis-ci.org/michaelpb/actable.svg?branch=masterhttps://codecov.io/gh/michaelpb/actable/branch/master/graph/badge.svg
  • 注意:目前支持python 3.5+和django 1.9+(请参见issue #1

python django的活动流。与其他活动流不同,它是 更灵活,每一个事件的设计支持任意数量的 关联对象。它也被设计成不引人注目的:任何你的模型 可以注册为活动生成器,只需生成 上下文或HTML片段的数据结构。

功能

    非常容易地/神奇地集成到现有系统中,带有信号 基于主对象自动生成
  • 每个事件都可以关联任意数量的对象
  • 使用非规范化事件快速查找(无连接)
  • 查找特定角色或对象的流
  • 良好的测试覆盖率
  • 方便的分页器帮助程序类,可在流中分页
  • 示例项目
  • 尚未实现:跟随

快速启动

概述:

  1. 安装actable并放入需求文件
  2. 添加到已安装的应用程序

三。选择几个重要的模型来实现Actable接口,以便 每次保存或更新都会生成一个事件

  1. 将这些模型添加到可操作的模型中
  2. 使用帮助类向视图中添加流

安装:

pip install actable

将其添加到已安装的应用程序中

INSTALLED_APPS=(...'actable.apps.ActableConfig',...)

选择一个或多个模型作为您的实际模型。当这些模型 更新或创建后,它将生成事件。这些事件可能涉及 其他对象的数目。

必须在可执行模型上至少实现两个方法。第一种方法 是get_actable_relations,它必须返回一个字典,其中 值是与此操作相关的模型实例。而不是 把自己限制在“actor,verb,object”,这允许你有任何数字 关系。每个模型实例都将收到 事件到其活动流。

示例:

classProjectBlogPost:defget_actable_relations(self,event):return{'subject':self.user,'object':self,'project':self.project,}

现在您必须从另外两个要实现的方法中选择一个。这些构成了 要为每个事件缓存的数据。

其中最通用的是返回包含 完全简单(可序列化)的数据类型。将以序列化方式存储 数据库中的表单。

示例:

classProjectBlogPost:defget_actable_json(self,event):verb='posted'ifevent.is_creationelse'updated'return{'subject':self.user.username,'subject_url':self.user.get_absolute_url(),'object':self.title,'object_url':self.get_absolute_url(),'project':self.project.title,'verb':verb,}

另一个选项是缓存可以生成任何 你认为合适的方式。

示例:

classProjectBlogPost:defget_actable_html(self,event):return'<a href="%s">%s</a> wrote %s'%(self.user.get_absolute_url(),self.user.username,self.title)

最后,您应该将新改进的列为ACTABLE_MODEL,如下所示:

ACTABLE_MODELS=['myapp.ProjectBlogPost',]

学分

创建此包时使用的工具:

历史记录

0.1.0(2017-11-10)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
另一个布局上的java Access文本视图   安卓在Java中,我什么时候应该用*导入整个包,而不是从包中导入单个对象?   JavaSpringMVC:请解释@RequestParam和@ModelAttribute之间的区别   java Flyway Ant构建未迁移   java“没有可供下载的文件”   如何解决java静态名称冲突?   我是否需要框架来补充JavaEE6、JSF2 WebApp?哪一个?   java如何传递HttpServletRequest参数?   只有java的视频不会播放声音。为什么?   java在Maven3中做这样的属性重写工作吗?   java计算Android中两个标记之间的距离   Javascript页面加载中的java复选框持久性问题   java序列化lambda函数的映射   java使用jersey、maven和eclipse配置swagger   java我可以在oncreate方法之外使用setContentView吗?   java在使用JAXRS响应类返回实体时遇到异常   java规范了加密和解密文本的文本编写方法   java如何更改ChoiceBox的默认大小?   java在Android上暂时禁用PIN/密码锁