django的一组可重用基类和帮助程序

django-baseclasses的Python项目详细描述


django基类是一个小的helper集和抽象基类模型 Django的课程。

安装

python ./setup.py install

或使用pip:

pip install django-baseclasses

baseclasses.models

中提供的抽象类

DateAuditModel

将模型的创建时间和上次更改时间的记录存储在 creation_datelast_updated字段,订单打开 creation_date,并提供get_nextget_prev方法 遵守命令。

BaseContentModel

扩展DateAuditModel,添加is_livepub_date字段, 并在默认管理器上提供一个live方法,该方法只返回 具有is_live集和非未来pub_date的对象。还有命令 通过pub_date,并提供next_liveprev_live方法 只在“活动”对象中循环。

BaseImageModel

提供captionimagesort_order字段。命令 sort_order

BaseModelWithImages

BaseImageModel一起使用的父模型 模型。提供primary_image属性,该属性返回第一个 相关图像对象,或None。外键的related_name 必须是“图像集”

BaseHierarchyModel

提供parent字段来创建简单的层次结构系统,即。 类别和子类别。提供get_hierarchy方法,该方法 返回树中对象的列表,从顶层到 当前。

模型字段

baseclasses.fields.ConstrainedImageField

上载时调整图像大小并覆盖原始图像。使用 max_dimensions参数来确定大小调整行为。

助手

baseclasses.util.next_or_prev_in_order

参数:(instance, prev=False, qs=None, loop=False)

从 给定queryset(假定包含实例),尊重 查询集排序。如果循环为true,则在 到达结束/开始。

baseclasses.admin.ContentModelAdminMixin

启用非活动对象的(缓存安全)管理预览。示例

@admin.register(MyModel)
class MyModelAdmin(ContentModelAdminMixin, admin.ModelAdmin):
    ...

将请求传递给模型的livemanager方法以启用 预览:

def my_model_view(request, slug)
    instance = get_object_or_404(MyModel.objects.live(request), slug=slug)
    ...

示例:

# models.py

from django.db import models
from baseclasses.models import BaseContentModel, BaseModelWithImages, \
                               BaseImageModel


class Article(BaseContentModel, BaseModelWithImages):
    title = models.CharField(max_length=190)
    text = models.TextField()


class ArticleImage(BaseImageModel):
    article = models.ForeignKey(Article, related_name='image_set')

使用上述模型定义,您可以执行以下操作:

articles = Article.objects.live() # get queryset of all live articles
article = articles[0]
article.primary_image # get primary image (model instance) for the article
article.next_live # get next live article

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

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型