基于django延迟模型的多态模型

django_deferred_polymorph的Python项目详细描述


关于

django_deferred_polymorp是django多态模型的一个实现。与其他解决方案一样,您只需从数据库中获取基本实例并获得正确的子类。这意味着您始终可以依赖于拥有您的子类将提供的所有数据/方法。

与其他解决方案不同的是,附加数据是通过使用Django自己的延迟机制的稍微修改版本加载的。这样,获取基类只会发出一个sql查询,返回子类和所有附加数据作为延迟字段。如果试图访问某个延迟字段,则会加载所有延迟字段(与django的默认延迟字段不同)。

django_deferred_polymorf包含两个抽象基模型:

  • DeferredPolymorphBaseModel as the base for every deferred model
  • SubDeferredPolymorphBaseModel which extends DeferredPolymorphBaseModel to force userd to use a subclass

安装

第一个:

pip install django_deferred_polymorph

然后将'django_deferred_polymorph'添加到INSTALLED_APPS设置中。

运行测试

首先创建一个virtualenv,然后在virtualenv和 使用以下命令添加测试依赖项:

python setup.py develop
pip install -r requirements.txt

现在您可以对当前安装的 django与:

python runtests.py

但是我们支持django和python的多个版本。全部测试 立即使用以下命令进行相关组合:

tox

更改日志

0.4.0

  • 重新使用已注册的应用程序,以便对象删除生效
  • 与django<;1.7的兼容性降低

0.3.2

  • 修正了django 1.8中未正确设置_base_managerDeferredPolymorphBaseModel的子类。打破了 Model.delete()方法在某些情况下。

0.3.1

  • 添加manifest.in文件以定义源中包含的文件 分配。其中缺少changes.rst,并在 安装。

0.3.0

  • 放弃对django 1.5.x和更低版本的支持,因为我们必须熟练地使用django的 管理器中get_queryset而不是get_query_set的命名方案。
  • 修正了django 1.8,它在meta中使用unicode作为模型名。 目标用type()中断了动态类的创建。

0.2.0

  • Django 1.8支持。

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

推荐PyPI第三方库


热门话题
在Java中运行时在两个枚举类之间切换   java如何让PicoContainer启动/停止/处置工厂注入的组件?   带有Recyclerview onClick的java多活动   java如何从TestNG tests和Selenium接口调用默认方法?   java无法在Eclipse3.5.2中折叠注释   RR和SJF CPU调度算法的Java代码   java从属性文件配置记录器   java Notify传输在字符更改后超过20个字节完成   java阵列究竟是如何工作的   java跨类/包维护全局但可变的变量   java向setMessageListener注册侦听器服务   java按钮单击不在片段中工作   java GSSExException:使用spnego在GSSAPI上未指定故障(机制级别:不支持/启用带有HMAC SHA196的加密类型AES256CTS模式)   用java绘制虚线的图形   java从networkdrive启动windows捆绑包使用不包括JRE?   多线程java线程体系结构与应用程序设计