动机

为django model系统提供一些可重用的mixin和utils.

简介

django-model-utils1为Django Model提供了下嘛几种分类的utils:

  • Field相关

    • StatusField: 一个CharField的子类,通过特定的Model类属性,来使用django的字段choices功能
    • MonitorField: 一个DateTimeField的子类,可以用来监控该model下的其它字段,在这个字段更新的时候,把monitorfield的值更新为当前时间
    • SplitField: 一个TextField子类,可以把文本划分为两部分,通过自定的切割符或者指定段落数来划分
  • Model相关:

    • TimeFrameModel:一个抽象基类,可以表示时间范围
    • TimeStampedModel: 一个抽象基类,子类可以获得两个自动更新的createdmodified字段
    • StatusModel: 将StatusField, MonitorField, QueryManager聚合使用的一个抽象基类
    • SoftDeletedModel: 加入一个is_removed字段,代表这条数据已经被删除
  • Model Manager相关:

    • InheritanceManager: 这个manager应该放在一个基类中,然后query的时候,返回的结果会自动变成子类的实例
    • JoinManager:JoinManager可以为你当前的queryset创建一个临时表。但是不如使用__inlookup
    • QueryManager: 这应该算一个manager factory。可以通过它来创建你要的自定义manager
    • SoftDeletableManager: 返回is_removed为False的数据
  • 其它功能:

    • Choices: 用于Field.choices的工具类
    • Field Tracker: 可以用来追踪一个model instance的最近改动(save之前)

个人评分

类型 评分
实用性 ⭐️⭐️
易用性 ⭐️⭐️⭐️⭐️⭐️
有趣性 ⭐️

【AMAD】django-model-utils -- Django model使用的mixin和utils的更多相关文章

  1. frist Django app— 二、 Model和管理界面

    Django是符合MVC架构的,这里现学习M—Model,而且Django自带了一个管理model(数据库)的界面,所以一并学习. Database 配置 编辑Django的配置文件settings. ...

  2. Django基础核心技术之Model模型的介绍与设计

    Django基础核心技术之Model模型的介绍与设计原创: Yunbo Shi Python Web与Django开发 2018-05-03Django网络应用开发的5项基础核心技术包括模型(Mode ...

  3. Django(进阶篇)之model

    Model 解析 Django的数据库,涉及相关操作时就是以下流程: 1.创建数据库,设计表结构和字段 2.使用Mysqldb来连接数据库,并编写数据访问层 3.业务逻辑层去调用数据访问层执行数据库操 ...

  4. django中通过model名字获取model

    django1.6, 通过字符串和get_app.get_model获得对应的object 只需要两行代码: from django.db.models import get_model get_mo ...

  5. Django之--MVC的Model

    在上一篇:Django之--通过MVC架构的html模板展示Hello World! 讲述了基本的MVC模型,但是却并没有测试Model的作用,本文通过mysql数据库来测试. Django自带的mo ...

  6. 单独的 python 脚本文件使用 django 自带的 model

    django1.9.5&python3.4.4 文件结构 在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库   修改的文件(其余pycharm新建Django项目生成, ...

  7. django中跨app引用model

    可能是自己水平的原因,总感觉跨django中app引用有点怪怪的,所以在自己没有达到另一个级别之前就先把正确的解决 方案记一下吧. 一.django中跨app引用model,以app02中的model ...

  8. python学习笔记--Django入门三 Django 与数据库的交互:数据建模

    把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式.在这个模式中, Model 代表数据存取层,View 代表的是系统中 ...

  9. [Django高级]理解django中的中间件机制和执行顺序

    原文来自 Understanding Django Middlewares, 这篇文章从整体上介绍了django中中间件定义,作用,和怎么样自己写中间件 –orangleliu. 注:middlewa ...

随机推荐

  1. POI导出Excel不弹出保存提示_通过ajax异步请求(post)到后台通过POI导出Excel

    实现导出excel的思路是:前端通过ajax的post请求,到后台处理数据,然后把流文件响应到客户端,供客户端下载 文件下载方法如下: public static boolean downloadLo ...

  2. JZOJ 5987 仙人掌毒题 (树链剖分 + 容斥)

    跟仙人掌其实没啥关系- Here 注意 每一次都O(n)O(n)O(n)一下算某些点都是黑点的概率其实并不是O(n2)O(n^2)O(n2),因为每个环只用算一次. #include <ccty ...

  3. 使用Hydra对ssh和rdp进行爆破的简单明令

    使用方式 hydra <IP> ssh/rdp -l <USER> -p <PASSWORD> -V 使用大写的L和P,可以替换成字典文件进行爆破 如hydra & ...

  4. WTL自定义控件:edit输入响应

    自定义的edit控件,获取edit输入响应的消息: 头文件部分: BEGIN_MSG_MAP(CCheckEditEx) MESSAGE_HANDLER(WM_CHAR, OnChar) END_MS ...

  5. jquery fadeIn()方法 语法

    jquery fadeIn()方法 语法 作用:fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的.大理石平台检定规程 语法:$(selector).fadeIn(speed,cal ...

  6. 小程序开发之后台SSM环境搭建(一)

    1.新建web项目 打开eclipse,选择file-->New-->Dynamic web Project ,填写项目名字,一直点击next,勾选Generate web.xml dep ...

  7. JVM(九),垃圾回收回收算法

    九.垃圾回收回收算法 1.标记-清除(Mark and Sweep) 缺点是内存空间碎片化太严重 2.复制算法(Copying) (1)复制算法介绍 (2)复制算法优势 3.标记-整理算法(Compa ...

  8. python中的位运算

    目录 1.判断奇偶数 2.交换两个数 3.找出没有重复的数 4.3的n次方 5. 找出不大于N的最大的2的幂指数 1.判断奇偶数 如果把n以二进制形式展示的话,我们只需要判断最后一个二进制位是1还是0 ...

  9. Python基础之赋值运算符

    如下图所示,假设变量a = 10, b = 20

  10. Mybatis 实体类使用@Accessors(chain = true)注解时,对应的mapper xml 报错

    去掉这个注解就行了 应该是 mybatis 会调用实体类的 getter  setter 方法, 返回值可能会有所影响