动机
为django model系统提供一些可重用的mixin和utils.
简介
django-model-utils
1为Django Model提供了下嘛几种分类的utils:
-
Field相关
- StatusField: 一个
CharField
的子类,通过特定的Model类属性,来使用django的字段choices功能 - MonitorField: 一个
DateTimeField
的子类,可以用来监控该model下的其它字段,在这个字段更新的时候,把monitorfield的值更新为当前时间 - SplitField: 一个
TextField
子类,可以把文本划分为两部分,通过自定的切割符或者指定段落数来划分
- StatusField: 一个
-
Model相关:
- TimeFrameModel:一个抽象基类,可以表示时间范围
- TimeStampedModel: 一个抽象基类,子类可以获得两个自动更新的
created
和modified
字段 - StatusModel: 将
StatusField
,MonitorField
,QueryManager
聚合使用的一个抽象基类 - SoftDeletedModel: 加入一个
is_removed
字段,代表这条数据已经被删除
-
Model Manager相关:
- InheritanceManager: 这个manager应该放在一个基类中,然后query的时候,返回的结果会自动变成子类的实例
- JoinManager:JoinManager可以为你当前的queryset创建一个临时表。但是不如使用
__in
lookup - QueryManager: 这应该算一个manager factory。可以通过它来创建你要的自定义manager
- SoftDeletableManager: 返回
is_removed
为False的数据
-
其它功能:
- Choices: 用于Field.choices的工具类
- Field Tracker: 可以用来追踪一个model instance的最近改动(save之前)
个人评分
类型 | 评分 |
---|---|
实用性 | ⭐️⭐️ |
易用性 | ⭐️⭐️⭐️⭐️⭐️ |
有趣性 | ⭐️ |